REST API для работы с WhatsApp
Мы добавили в Олчат REST API (программный интерфейс взаимодействия с сервером) для работы с WhatsApp. Теперь вы можете сформировать вебхук и использовать его для вызовов методов REST в своих сценариях автоматизации и при интеграции различных сервисов.
Получение вебхука
Создать вебхук можно в приложении Олчат — «•••» (меню вызова настроек коннектора) — Настройки коннектора — Вебхук — Сгенерировать новый:
После создания его можно скопировать в буфер, нажав на кнопку «Скопировать вебхук». При необходимости вебхук можно изменить, нажав на кнопку «Сгенерировать новый»:
Описание методов
Для простоты использования большая часть API (программных интерфейсов) допускает использование GET-запросов.
Указанные ниже технические ограничения по запросам изменить или убрать невозможно.
Для корректного срабатывания запросов в параметр «Номер телефона» необходимо вписывать значение через «7» в начале номера.
Отправка сообщения
GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/sendText
Позволяет отправить текстовое сообщение на указанный номер телефона в WhatsApp.
Ограничение: 5 запросов в 3 секунды.
Параметры
| Name | Type | Description |
|---|---|---|
| phone_number* | str | Номер телефона |
| body* | text | Тело сообщения |
| send_to_imol* | Y|N | Отправка в чат Открытой Линии. Может принимать значение Y|N |
{% tabs %} {% tab title="200: OK " %}
{% endtab %} {% endtabs %}
Отправка файла
GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/sendFile
Позволяет отправить файл на указанный номер телефона в WhatsApp. В качестве файла указывается прямая ссылка на файл. Подробнее в статье #sozdanie-pryamoi-ssylki-na-fail.
Ограничение: 5 запросов в 3 секунды.
Параметры
| Name | Type | Description |
|---|---|---|
| phone_number* | str | Номер телефона |
| body* | url | Прямая ссылка на файл |
| send_to_imol* | Y|N | Отправка в чат Открытой Линии. Может принимать значение Y|N |
| caption | str | Текст подписи под картинкой |
{% tabs %} {% tab title="200: OK " %}
{% endtab %} {% endtabs %}
Проверка аккаунта на номере
GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/checkPhone
Позволяет проверить наличие на номере аккаунта WhatsApp.
Ограничение: 3 запроса в 1 секунду.
ВАЖНО! Не злоупотребляйте этим методом, так как высока вероятность блокировки вашего аккаунта со стороны WhatsApp.
Path Parameters
| Name | Type | Description |
|---|---|---|
| phone_number* | str | Номер телефона |
{% tabs %} {% tab title="200: OK " %}
{% endtab %} {% endtabs %}
Проверка статуса линии
GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/checkStatus
Позволяет проверить статус текущей линии.
Ограничение: 5 запросов в 3 секунды.
Проверка статуса сообщения
GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/checkMessageStatus
Позволяет проверить статус сообщения.
Ограничение: 5 запросов в 3 секунды.
Path Parameters
| Name | Type | Description |
|---|---|---|
| phone_number* | str | Номер телефона |
| message_id* | str | ID сообщения |
{% tabs %} {% tab title="200: OK " %}
{% endtab %} {% endtabs %}
Где можно использовать REST API
Предположим, что у вас есть сайт или интернет-магазин, который не интегрирован с Битрикс24, но присутствует необходимость уведомить клиента, заполнившего форму WhatsApp, о том, что его заявка принята в работу или заказ оформлен.
Вы можете привязаться к событию заполнения формы и отправить запрос, содержащий метод отправки сообщения: https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/sendText.
- В качестве phone_number передайте в запрос номер телефона из формы.
- В качестве body – ваш текст сообщения, например: «Мы получили вашу заявку, номер вашего заказа №00001».
- В send_to_imol передайте Y или N.
Другие примеры использования REST API:
- Уведомление о записи на приём из сторонней системы (например, запись на приём у стоматолога).
- Отправка уведомления из 1С.
- Сообщение с номера телефона для интегратора.
Как добавить подпись к файлу, отправленному через REST API
Ниже приведен пример, написанный на Python с использованием библиотеки Requests:
import requests
webhook_url = "https://olchat.infocom.io/rest/webhook/wa/{{ваш token}}/sendFile/"
payload = {
'phone_number': '7985...',
'body': 'https://drive.google.com/uc?export=dow...eezby';,
'send_to_imol': 'Y',
'caption': 'Ваша корзина ждет! Завершите покупку и получите подарок'
}
response = requests.post(webhook_url, json=payload)Переменная 'send_to_imol' может иметь значение:
- 'Y' - публиковать в чат Открытой линии.
- 'N' - не публиковать в чат Открытой линии.
При выполнении этого скрипта в чате Открытой линии будет отображено следующее сообщение:
На стороне клиента это же сообщение будет выглядеть следующим образом:
Получение последних входящих сообщений
GEThttps://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/lastIncomingMessages
Возвращает последние входящие сообщения из чата Открытой линии, привязанного к сущности CRM.
Ограничение: 5 запросов в 3 секунды.
Параметры запроса (передаются в query string):
- minutes — int — количество минут назад, за которые нужно получить сообщения.
Это обязательный параметр со значением по умолчанию 1440 (сутки). Допустимый диапазон: от 1 до 10080 (7 суток).
Получение последних исходящих сообщений
GEThttps://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/lastOutgoingMessages
Возвращает последние исходящие сообщения из чата Открытой линии, привязанного к сущности CRM (системы управления взаимоотношениями с клиентами).
Ограничение: 5 запросов в 3 секунды.
Параметры запроса (передаются в query string):
- minutes — int — количество минут назад, за которые нужно получить сообщения.
Это обязательный параметр со значением по умолчанию 1440 (сутки). Допустимый диапазон: от 1 до 10080 (7 суток).
Особенности получения последних сообщений
- Возвращается только текст (медиафайлы — фото, видео, документы — не возвращаются).
- В ответе присутствует поле timestamp с датой и временем каждого сообщения (в формате Unix timestamp или ISO 8601 — уточняется в реальном ответе).
- Работает только для чатов, привязанных к контактам, компаниям или сделкам.
- Максимальная глубина истории поиска — 7 дней (10080 минут). Это жёсткое ограничение Bitrix24, его нельзя увеличить.
- Если требуется знать дату самого последнего сообщения за более длительный период — рекомендуется сохранять timestamp последнего сообщения в кастомное поле CRM при каждом новом входящем или исходящем сообщении (через вебхуки или обработчики событий).
- Методы не предназначены для полной выгрузки истории чата. Они подходят только для получения свежих сообщений и определения времени последнего контакта.