Олчат

REST API для работы с WhatsApp

Мы добавили в Олчат REST API (программный интерфейс взаимодействия с сервером) для работы с WhatsApp. Теперь вы можете сформировать вебхук и использовать его для вызовов методов REST в своих сценариях автоматизации и при интеграции различных сервисов.

Получение вебхука

Создать вебхук можно в приложении Олчат — «•••» (меню вызова настроек коннектора) — Настройки коннектора — Вебхук — Сгенерировать новый:

После создания его можно скопировать в буфер, нажав на кнопку «Скопировать вебхук». При необходимости вебхук можно изменить, нажав на кнопку «Сгенерировать новый»:

Описание методов

Для простоты использования большая часть API (программных интерфейсов) допускает использование GET-запросов.

Указанные ниже технические ограничения по запросам изменить или убрать невозможно.

Для корректного срабатывания запросов в параметр «Номер телефона» необходимо вписывать значение через «7» в начале номера.

Отправка сообщения

GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/sendText

Позволяет отправить текстовое сообщение на указанный номер телефона в WhatsApp.

Ограничение: 5 запросов в 3 секунды.

Параметры

NameTypeDescription
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 секунды.

Параметры

NameTypeDescription
phone_number*strНомер телефона
body*urlПрямая ссылка на файл
send_to_imol*Y|NОтправка в чат Открытой Линии. Может принимать значение Y|N
captionstrТекст подписи под картинкой

{% tabs %} {% tab title="200: OK " %}

{% endtab %} {% endtabs %}

Проверка аккаунта на номере

GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/checkPhone

Позволяет проверить наличие на номере аккаунта WhatsApp.

Ограничение: 3 запроса в 1 секунду.

ВАЖНО! Не злоупотребляйте этим методом, так как высока вероятность блокировки вашего аккаунта со стороны WhatsApp.

Path Parameters

NameTypeDescription
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

NameTypeDescription
phone_number*strНомер телефона
message_id*strID сообщения

{% 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. Уведомление о записи на приём из сторонней системы (например, запись на приём у стоматолога).
  2. Отправка уведомления из 1С.
  3. Сообщение с номера телефона для интегратора.

Как добавить подпись к файлу, отправленному через 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 при каждом новом входящем или исходящем сообщении (через вебхуки или обработчики событий).
  • Методы не предназначены для полной выгрузки истории чата. Они подходят только для получения свежих сообщений и определения времени последнего контакта.

На этой странице