[ Закрыто ] Доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения, Как получить доступ к CRM https://nnn.bitrix24.ru/crm из консольного приложения и внести изменения в "Сделку" ?
Шеф поставил задачу: "Из десктопного(GUI либо консольного) приложения надо получить доступ к CRM https://nnn.bitrix24.ru/crm и внести изменения в "Сделку".
Язык написания этой "волшебной проги" - любой. Смыл действия - бухгалтер, оформив накладную в VB-приложении жмёт кнопку "отправить в CRM" , в этот момент вызывается эта самая "волшебная прога" и по известному ей ИД меняет некоторые поля в ранее оформленной "CRM-Сделке" . Особенность - прога у буха на десктопе в Конотопе, а сервер CRM расположен в облаке (nnn).bitrix24.ru.
Подскажите - как такую "волшебную прогу" сотворить? Какой язык удобней взять за основу? Где прочитать(получить) АПИ? Каков общий "дизайн" такого решения подскажите? Может, где примеры есть подобного решения?
Дмитрий, спасибо за ответ. Прежде чем просить помощи на форуме, я конечно же начал с чтения этого API. Читал также и это http://blogroll.pcmag.ru/go.php?nid=324703 А вот воспользоваться предложенным алгоритмом не смог. И здесь http://dev.1c-bitrix.ru/rest_help/oauth/index.php и здесь http://blogroll.pcmag.ru/go.php?nid=324703 первым пунктом предлагается это "регистрируется своё приложение в Маркетплейсе Битрикс24". А какое это "моё" приложение ? То самое консольное, которое только писать собираюсь ? Где это место (URL) регистрации найти ?
Сдвинулся с мёртвой точки. Получил статус партнёра. Далее по пунктам: 1. Зарегистрировать в МП приложение с отмеченной галочкой "Использует только API" (не обязательно, но типично). Зарегистрировал.
2. Создать в МП версию приложения, указывая ссылку вида http://localhost:7000. Создал.
3. Установить созданную версию на тестовый портал при помощи ссылки "Установить на свой портал Битрикс24" в форме редактирования версии. Установил
Контрол получил в ответ страницу с запросом имени и пароля, а Здесь написано -
Все правильно. На первом шаге авторизации пользователь приложения должен дать доступ приложению на портал, а для этого ему нужно самому авторизоваться на портале. Именно поэтому первый шаг должен происходить в браузере (или в соответствующем элементе управления, встроенном в приложение).
В документации сказано: В общем виде вызов метода REST выглядит вот так: https://домен_Б24.bitrix24.{ru|en|de}/rest/имя_метода.транспорт?параметры_метода&auth=ключ_авторизации
Подскажите пожалуйста, каков синтаксис для "параметры_метода" ? Буде проще на примере вызова этого метода. Как следует оформить строку "https://домен_Б24.bitrix24....?параметры_метода&..." ?
P.S. Пытаюсь написать приложение на VB.NET. Использую для доступа на сайт HttpWebRequest.
Будет. Работают оба варианта, просто js-библиотека отправляет POST-запросы. В примерах документации фигурирую GET-запросы просто для удобства восприятия.
Что значит это ответ сервера ? Мои изменения поля SECOND_NAME у записи с ID=1 приняты ? Если да, то почему я не вижу этих изменений через браузер ?
Кстати, этот же запрос был выполнен мною и из браузера. Ответ сервера был идентичен, а изменений я таки не наблюдаю.
Что я делаю не так?
Попробовал изменить запрос (ошибся в имени поля SECOND_NAME указав SECOND111_NAME) - получил ответ: {"result":true} Попробовал изменить запрос (ошибся в ID записи указав ID=111) - получил ответ: false
Поясню: ID=1 - есть такая запись ID=111 - нет такой записи
Если честно, то я как-то не понимаю, в чем ваша проблема.
Цитата
Попробовал изменить запрос (ошибся в имени поля SECOND_NAME указав SECOND111_NAME) - получил ответ: {"result":true}
Логично. Попытка изменить существующую запись с ID=1. Несуществующие поля проигнорированы. Обновление существующей записи пустым набором полей прошло успешно.
Цитата
Попробовал изменить запрос (ошибся в ID записи указав ID=111) - получил ответ: false
Логично. Попытка изменить несуществующую запись обрублена сразу.
То, что не возвращаются человеческие коды ошибок - это уже другой вопрос.
Цитата
Правим на лету
Вчера на Битрикс24 накатывалось обновление, какие-то ошибки могли быть исправлены. Если обновление через crm.lead.update по-прежнему не приводит ни к какому результату, попробуйте указать имя параметра fields в нижнем регистре, как это указано в документации. Если не поможет - обратитесь в техподдержку.
Maks Sidorenko пишет: Если честно, то я как-то не понимаю, в чем ваша проблема.
Цитата
Попробовал изменить запрос (ошибся в имени поля SECOND_NAME указав SECOND111_NAME) - получил ответ: {"result":true}
Логично. Попытка изменить существующую запись с ID=1. Несуществующие поля проигнорированы. Обновление существующей записи пустым набором полей прошло успешно.
О "логичности" подобного поведения спорить не стану. Для меня, по крайней мере, этот ответ, как в прочем и его "логичность", оказались неожиданными. Ничего, привыкну.
Теперь попробую переформулировать суть моей, надеюсь уже решённой, проблемы. Вчера утром неоднократно выполнив вот такой запрос (ключ изменён): https://masterlab.bitrix24.ru/rest/crm.contact.update.json?&auth=990215cd9960cdba187b83200189658a&ID=1&FIELDS[SECOND_NAME]=123 получил ответ: {"result":true} Заходя браузером в запись с ID=1 после каждой попытки коррекции НЕ ОБНАРУЖИВАЛ в ней желаемого значения. Поле SECOND_NAME оставалось пустым. Потом приступил к экспериментам. Намеренно создавал некорректные запросы и смотрел на реакцию системы. О результатах писал выше. Не получив желаемого результата занялся другими работами (обычно пишу десктопные приложения на Java, а сейчас опять вернулся к Qt C++).
Ближе к вечеру решил попробовать ещё раз "победить" мою "проблему битрикса". Начал с того же утреннего запроса https://masterlab.bitrix24.ru/rest/crm.contact.update.json?&auth=990215cd9960cdba187b83200189658a&ID=1&FIELDS[SECOND_NAME]=123 И каково же было моё удивление, когда я обнаружил, что значение поля SECOND_NAME таки изменилось на желаемое "123". А ведь я ничего не менял в своём коде. Для перепроверки себя самого (и битрикс-РЕСТ-АПИ) попробовал программно изменить запись с другим ID. История успеха повторилась. Подумал, что, наверно не один я что-то правлю. Потому и написал последний вчерашний восторженный пост. Спасибо за ваши ответы.
Поймал себя на невольном обмане. Перепроверил сейчас свой запрос с учётом вашего совета "попробуйте указать имя параметра fields в нижнем регистре". Вы правы - так работает. Видимо я вчера проводя серию экспериментов с синтаксисом в запросе таки изменил регистр у параметра FIELDS на нижний. Потому он "волшебным" образом и заработал. Неожиданная для меня чувствительность к регистру. Впредь мне наука будет.
Итак, попробую продолжить мучить вас дурацкими вопросами. Подскажите, почему, действуя в соответствии с вашими рекомендациями " ... 4. Для авторизации нужно открыть браузерное окно (или встроить соответствующий контрол в свое приложение) на адрес вида: https://мой_портал.bitrix24.ru/oauth/authorize/?client_id=код_приложения&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A70005"
я получаю "код_получения_авторизации" как вами и предсказано
НО ТОЛЬКО если использую БРАУЗЕР ? Выполнив этот запрос программно в ответ от сервера я получаю html-страницу с предложением авторизоваться. Помнится выполнив первый раз этот запрос в браузере я тоже прошёл через окно авторизации, но только однажды. Все последующие попытки повторить запрос в браузере завершались успешным получением "кода_получения_авторизации" без повторной авторизации. Как мне программно пройти авторизацию для последующего получения "кода_получения_авторизации" ? А может быть можно обойти авторизацию и получить "код_получения_авторизации" иным путём ?
Шеф поставил задачу: "Из десктопного(GUI либо консольного) приложения надо получить доступ к CRM https://nnn.bitrix24.ru/crm и внести изменения в "Сделку".
Язык написания этой "волшебной проги" - любой. Смыл действия - бухгалтер, оформив накладную в VB-приложении жмёт кнопку "отправить в CRM" , в этот момент вызывается эта самая "волшебная прога" и по известному ей ИД меняет некоторые поля в ранее оформленной "CRM-Сделке" . Особенность - прога у буха на десктопе в Конотопе, а сервер CRM расположен в облаке (nnn).bitrix24.ru.
Подскажите - как такую "волшебную прогу" сотворить? Какой язык удобней взять за основу? Где прочитать(получить) АПИ? Каков общий "дизайн" такого решения подскажите? Может, где примеры есть подобного решения?
Буду признателен за любую подсказку.
Удачи, нам всем
друг вот посмотри здесь http://www.modber.ru/ тут всё подробно расписано для начинающих)
Контрол получил в ответ страницу с запросом имени и пароля, а Здесь написано -
Все правильно. На первом шаге авторизации пользователь приложения должен дать доступ приложению на портал, а для этого ему нужно самому авторизоваться на портале. Именно поэтому первый шаг должен происходить в браузере (или в соответствующем элементе управления, встроенном в приложение).
А если у меня сайт и при заходе посетителя мне нужно создать сделку, если он запрос делает? Я же не могу сделать чтоб пользователи вводили логин/пароль к битриксу24? Можно как-то указать от каких логин/пароль проводить авторизацию?
Это дело придумано для добавления лидов, но если не указать никаких данных по лиду, то вернет ошибку и о чудо, не смотря на ошибку произведет авторизацию по заданному логину и паролю. И это значит, что далее по накатанной получаем code и token
надеюсь кому-то это поможет в этой неравной борьбе с bitrix rest api
Это дело придумано для добавления лидов, но если не указать никаких данных по лиду, то вернет ошибку и о чудо, не смотря на ошибку произведет авторизацию по заданному логину и паролю. И это значит, что далее по накатанной получаем code и token
надеюсь кому-то это поможет в этой неравной борьбе с bitrix rest api
Обращаюсь к lead.php через curl_exec, но портал не считает, что я авторизован. Возвращает только AUTH-ключ. Как мне его использовать, чтобы получить code для Rest API? Есть какие-нибудь мысли по этому поводу?
Это дело придумано для добавления лидов, но если не указать никаких данных по лиду, то вернет ошибку и о чудо, не смотря на ошибку произведет авторизацию по заданному логину и паролю. И это значит, что далее по накатанной получаем code и token
надеюсь кому-то это поможет в этой неравной борьбе с bitrix rest api
Обращаюсь к lead.php через curl_exec, но портал не считает, что я авторизован. Возвращает только AUTH-ключ. Как мне его использовать, чтобы получить code для Rest API? Есть какие-нибудь мысли по этому поводу?
Это дело придумано для добавления лидов, но если не указать никаких данных по лиду, то вернет ошибку и о чудо, не смотря на ошибку произведет авторизацию по заданному логину и паролю. И это значит, что далее по накатанной получаем code и token
надеюсь кому-то это поможет в этой неравной борьбе с bitrix rest api
Обращаюсь к lead.php через curl_exec, но портал не считает, что я авторизован. Возвращает только AUTH-ключ. Как мне его использовать, чтобы получить code для Rest API? Есть какие-нибудь мысли по этому поводу?
Проблема в том, что мне не надо, чтобы пользователь видел окно логина в Б24. Я могу добавлять лидов через bitrix24.ru/crm/configs/import/lead.php, но я не могу получить список, чтобы проверить на дубликаты. В примерах же ориентируется на то, что пользоваться приложением будут люди у кого есть аккаунт в Б24.