Интеграция с SMS

Урок 26 из 29

Как разработать интеграцию Битрикс24 с SMS-провайдером?

Отправка SMS включена во многие сценарии внутри Битрикс24. Можно вручную отправить сообщение из карточки CRM, автоматически из робота CRM и действия бизнес-процесса, или использовать механизм рассылок CRM-маркетинга.

В качестве канала доставки сообщений клиентам необязательно служит SMS. Отправить сообщение можно в любой канал, умеющий идентифицировать получателя по номеру телефона.

Интеграция с SMS

5 мин

Зайдем в кабинет разработчика и создадим новое приложение, как мы это делали в предыдущем уроке.

Нажмем кнопку «Добавить приложение». Выберем, как и ранее, основной регион для будущей публикации решения. В карточке приложения нажмем на кнопку «Создать» и укажем тип «Использовать REST API». Убедимся, что скоуп "Сервис сообщений" добавлен в список разделов.

Скачайте пример, прикрепленный к уроку, и загрузите его на свой сервер так же, как мы это делали на уроках, посвященным локальным интеграциям.

Вставьте в карточке версии пути к выгруженному на сервер приложению, как мы это делали ранее. Скопируйте значения из полей client_id, client_secret и вставьте их в соответствующие константы в файле settings.php.

Доступность из внешней сети

Очень важно, чтобы адрес выгруженного на сервер примера был доступен из внешней сети. Никаких localhost, никаких самоподписанных SSL-сертификатов и так далее. Проверяйте доступность вашего URL какими-то сторонними сервисами, не уповайте, пожалуйста, на то, что именно в вашем браузере этот адрес успешно открывается. Убедитесь, что ваш веб-сервер разрешает показ во фреймах

Посмотрим код примера, и начнем с install.php. Здесь вызывается уже известный нам из предыдущих уроков метод installApp, который сохранит полученные токены авторизации в файл для дальнейшего использования.

И здесь же мы сразу воспользуемся этими токенами для выполнения метода messageservice.sender.add. В нашем примере используются только четыре параметра:

  • CODE, условный символьный код нашего провайдера, который должен отличать его от остальных, потенциально установленных в Битрикс24
  • TYPE, тип провайдера, который должен быть установлен в значение SMS, чтобы Битрикс24 понимал, в каких сценариях этот првайдер будет доступен.
  • HANDLER, Ссылка на обработчик, в который будет приходить POST-запрос от Битрикс24 с данными о сообщении, которое необходимо отправить.
  • NAME, название провайдера, которое увидят пользователи в интерфейсе Битрикс24.

Вернемся в кабинет разработчика

Текущая страница позволит установить приложение на наш Битрикс24 и протестировать его до публикации в Битрикс24.Маркет.

Укажем адрес своего Битрикс24, на котором мы являемся администратором и нажмем Установить.

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

Битрикс24 автоматически откроет приложение после завершения установки, поскольку у нашего приложения есть пользовательский интерфейс.

Правильнее всего в основном интерфейсе приложения реализовать механизм авторизации пользователя в сервисе SMS-провайдера, предложить пользователю указать нужные API-ключи провайдера, а также необходимые настройки.

Проверим, как зарегистрировался наш провайдер.

Перейдем в контакты CRM и откроем любой контакт, у которого указан телефонный номер. Нажмем кнопку SMS/WhatsApp.

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

Теперь вернемся к нашему коду и посмотрим, что Битрикс24 отправил в наш обработчик. Это массив очень простой структуры.

Мы видим здесь, какой именно инструмент Битрикс24 использовался для отправки, видим привязку сообщения к конкретному клиенту CRM и ряд других параметров. Но самые важные значения, которые нам нужны для отправки, это номер телефона получателя, текст сообщения и внутренний идентификатор сообщения в Битрикс24.

Эти данные можно использовать для вызовов API SMS-провайдера, чтобы действительно отправить сообщение из приложения. Собственно, код в handler.php как раз получает эти значения из массива REQUEST. Далее нужно разместить код, который непосредственно взаимодействует с конкретным SMS-сервисом или другим провайдером сообщений.

Обратите внимание на переменную $message_id. Если провайдер, который вы интегрируете с Битрикс24 в рамках приложения, умеет информировать о статусе доставке сообщения, то $message_id поможет нам в дальнейшем вызвать REST-метод messageservice.message.status.update для обновления статуса сообщения в интерфейсе Битрикс24.

Мы можем открыть настройки роботов CRM в сделках и убедиться, что наш провайдер также доступен в инструментах автоматизации Битрикс24. Добавим робота «Отправка SMS» и увидим наш провайдер в списке.

Зарегистрировав всего один обработчик, мы сделали провайдер из приложения доступным во всех сценариях Битрикс24, которые предполагают отправку сообщений.

Список ресурсов

Материалы уроку: