Использование

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

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

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

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

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

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

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

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

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

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

GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/v2/messages.text.send/

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

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

Параметры

NameTypeDescription
phone_number*strНомер телефона
text*textТело сообщения
publish_to_open_line*booleanПубликовать сообщение в Открытую линию. true / false, по умолчанию false

Отправка файла

GET ``https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/v2/messages.file.send/

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

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

Параметры

NameTypeDescription
phone_number*strНомер телефона
text*textТекст
publish_to_open_linebooleanПубликовать сообщение в Открытую линию. true / false, по умолчанию false
captionstrТекст подписи под картинкой

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

GET ``https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/v2/phone.check/

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

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

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

Path Parameters

NameTypeDescription
phone_number*strНомер телефона

Проверка статуса линии

GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/v2/line.status.get/

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

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

Проверка статуса сообщения

GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/v2/messages.status.get/

Позволяет проверить статус сообщения.

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

Path Parameters

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

Где можно использовать REST API

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

Вы можете привязаться к событию заполнения формы и отправить запрос, содержащий метод отправки сообщения: https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/v2/messages.text.send/.

  • В качестве phone_number передайте в запрос номер телефона из формы.
  • В качестве text – ваш текст сообщения, например: «Мы получили вашу заявку, номер вашего заказа №00001».
  • В publish_to_open_line передайте true или false

Другие примеры использования REST API:

  1. Уведомление о записи на приём из сторонней системы (например, запись на приём у стоматолога).
  2. Отправка уведомления из 1С.
  3. Сообщение с номера телефона для интегратора.

Как добавить подпись к файлу, отправленному через REST API

Ниже приведен пример, написанный на Python с использованием библиотеки Requests:

import requests

webhook_url = "https://olchat.infocom.io/rest/webhook/wa/{{ваш token}}/v2/messages.file.send/"

payload = {
    "phone_number": "7985...",
    "text": "https://drive.google.com/uc?export=download&id=...",
    "publish_to_open_line": True,
    "caption": "Ваша корзина ждет! Завершите покупку и получите подарок"
}

response = requests.post(webhook_url, json=payload)

Параметр publish_to_open_line может принимать значения:

  • true — публиковать в чат Открытой линии;
  • false — не публиковать в чат Открытой линии.

При выполнении этого скрипта в чате Открытой линии будет отображено следующее сообщение:

На стороне клиента это же сообщение будет выглядеть следующим образом:

Получение последних сообщений

Метод: messages.history.list

GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/v2/messages.history.list/

Возвращает список недавних входящих и/или исходящих сообщений по линии.

NameTypeDescription
directionstringОбязательный. incoming, outgoing или all
period_minutesintegerПериод в минутах (от 1 до 10080). По умолчанию 1440 (сутки)

Особенности

  • Возвращается только текстовое содержимое (медиафайлы не включаются).
  • Максимальная глубина истории — 7 суток (10080 минут). Это ограничение платформы, увеличить его нельзя.
  • Метод предназначен для получения свежих сообщений и определения времени последнего контакта. Для получения истории конкретного чата используйте метод chats.history.list.
  • В ответе для каждого сообщения возвращается поле timestamp — Unix time в секундах.

Получение истории конкретного чата

Метод: chats.history.list

GET https://olchat.infocom.io/rest/webhook/wa/\{\{token\}\}/v2/chats.history.list/

Возвращает историю сообщений указанного чата.

NameTypeDescription
phone_numberstringНомер телефона
chat_idstringИдентификатор чата WhatsApp (@c.us или @g.us)
limitintegerМаксимальное количество сообщений. По умолчанию 100

Особенности

  • По умолчанию возвращается 100 сообщений.
  • Необходимо указать хотя бы один из параметров: phone_number или chat_id. При указании обоих приоритет имеет phone_number.

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