Мой опыт использования Bitrix24 REST API

Привет всем. Опишу свой опыт использования API системы Битрикс 24.
Когда я впервые увидел API я подумал как круто что можно обращаться к элементам сделок из других программ и создавать их.

Мне поставили задачу "Необходимо перебрасывать сделки и контрагентов из 1С в Битрикс24".

Я начал копать просторы интернета в поиске как же все-таки получить авторизацию в системе.
Итак опишу все по порядку:

  1. Нужно зарегистрироваться как партнер Bitrix на сайте http://partners.1c-bitrix.ru/program/become/ 
  2. Дождаться пока вас утвердят, на вопрос "Зачем сам быть партнером" отвечает для доступа к REST API Bitrix24
  3. Зайти в кабинет партнера и перейти в раздел Приложения Битрикс24 (Маркетплейс) - Добавить приложение.
  4. В открывшемся окне заполняем информацию о приложении:
  5. Обращаю внимание на то что вы не сможете зарегистрировать приложение пока не заполните в карточке партнера договор. В Договоре постарайтесь по максимуму заполнить все поля.
  6. Обязательно при регистрации приложения ставим галочку "Использует только API"
  7. Сохраняем наше приложение с заставляем его слушать PORT 7000
  8. И тут же нажав на кнопку "Установить на свой портал Бирикс24" устанавливаем приложение на свой Битрикс. Важно дать приложению при установке все права.
  9. Когда приложение установлено на наш портал необходимо получить код (code) незнаю зачем он нужен, но его нужно получить. Для этого необходимо повесить программу которая бы слушала 7000 порт и в браузере набрать  строку вида 

  10. https://мой_портал.bitrix24.ru/oauth/authorize/?client_id=код_приложения&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A70005
    где мой портал - это имя моего портала
    код_приложения - код который можно посмотреть в кабинете партнера


  11. В ответ получим строку вида code=017d0e0823f457ba3de9df240b410f22 она нам понадобится для запроса авторизационного токкена .
  12. Дальше нужно отправить запрос методом POST, либо набрать в браузере строку следующего вида:

  13. https://мой_портал.bitrix24.ru/oauth/token/?client_id=код_приложения&grant_type=authorization_code&client_secret=секретный_ключ_приложения&redirect_uri=http%3A%2F%2Flocalhost%3A70005&code=код_получения_авторизации&scope=требуемый_набор_разрешений
      мой_портал - Имя портала
      код_получения_авторизации - Наш полученный код на предыдущем этапе
      код_приложения - мы уже знаем где его взять
      секретный_ключ_приложения - берем там же где и код приложения
    Список объектов через запятую к которым необходимо получить доступ например :
    {"access_token":"ключ для отправки запросов к REST-сервису","expires_in":3600,"scope":"user","refresh_token":"ключ для продления авторизации","domain":"мой_портал.bitrix24.ru"}
    Нам отсюда нужен только access_token




  14. Отправка запроса на примере добавления сделки в Битрикс24. Покажу пример отправки из 1С: 
Попытка
            WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
              WinHttp.Option(2,"utf-8");
                WinHttp.Open("POST","https://rygroup.bitrix24.ru/rest/crm.deal.add.json",0);
                  WinHttp.SetRequestHeader("Accept-Language", "ru");
                    WinHttp.SetRequestHeader("Accept-Charset","utf-8");
                      WinHttp.setRequestHeader("Content-Language", "ru");
                        WinHttp.setRequestHeader("Content-Charset", "utf-8");
                          WinHttp.setRequestHeader("Content-type", "application/json; charset=utf-8");

                      ПараметрыПОСТ = "auth="+ПолучитьАвторизационныйТоккен()+"&fields[TITLE]="+ЗаголовокСделки+"+&fields[TYPE_ID]="+ИдентификаторТипаСделки+"&fields[STAGE_ID]="+ИдентификаторЭтапаСделки+"&fields[COMPANY_ID]="+ИдентификаторКонтрагентаСделки+"&fields[CONTACT_ID]="+ИдентификаторКонтактногоЛица+"&fields[CURRENCY_ID]="+ВалютаСделки+"&fields[DATE_CREATE]="+ДатаСозданияСделки+"&fields[COMMENTS]="+КомментарийСделки+"&fields[CLOSED] = Y";
                        WinHttp.Send(ПараметрыПОСТ);
                                ТекстОтвета = WinHttp.ResponseText();
                                Сообщить("Текст ответа : "+ТекстОтвета);


                          Комментариев нет:

                          Отправить комментарий