Создание сессии по API
Команда открывает сессию WhatsApp для привязки к сервису. После открытия сессии необходимо авторизовать WhatsApp через мобильное приложение и QR-код. Если сессия не нужна, то ее необходимо закрыть командой session-delete
Команда отправки
Для отправки сообщения инициируется POST-запрос на адрес:
https://whatsgate.ru/api/v1/session-create
Объект в теле запроса при авторизации по QR
В теле запроса передается объект:
{ "name" : "My WhatsApp", "callback" : "https://callback.my/script.handler" }
- name - наименование WhatsApp в системе (для удобства распознавания)
- callback - URL обработчика обработчика входящих событий (необязательное, можно установить позже методом set-hook
Объект в теле запроса при авторизации по CODE
В теле запроса передается объект:
{ "name" : "My WhatsApp", "callback" : "https://callback.my/script.handler", "auth_type" : "CODE", "number" : "79999999999" }
- name - наименование WhatsApp в системе (для удобства распознавания)
- callback - URL обработчика обработчика входящих событий (необязательное, можно установить позже методом set-hook
- auth_type - Тип авторизации - по коду. При этом становится обязательным указание номера телефона, который будет авторизован по коду
- number - номер подключаемого телефона в формате 7XXXXXXXXXX
Объект ответа на запрос
Объект успешного ответа на запрос
{ "result": "OK", "data" : { "id": 151, "name": "My WhatsApp", "unique_id": "6345454545454", "status": "PENDING", "callback": "https://callback.my/script.handler", "date_add": "2022-10-11 19:30:14", "qr": null, "status_name": "Инициализация", "pushname": null, "wid": null, "qr_link": "https://whatsgate.ru/qr/6345454545454" } }
- result - при успешном выполнении запроса содержит «OK».
- data - содержит объект созданной сессии, в котором указан ее уникальный идентификатор unique_id, и ссылка на авторизацию по QR-коду qr_link
- qr или code зависит от типа указанной авторизации. Если был выбран тип авторизации по коду, то код будет находится в поле code. Поле qr_link будет вести на страницу с кодом авторизации.
Окно авторизации по QR-коду
Окно авторизации по QR-коду открывается по ссылке:
https://whatsgate.ru/qr/<unique_id>
Для удобства, данная ссылка передается в поле qr_link при создании сессии. QR-код, содержащийся в этом окне периодически обновляется, а так же изменяется на изображение успешной авторизации или ошибки.
Встраивание страницы с QR
Данную страницу возможно встраивать в собственное приложение посредством iframe, и принимать от нее сообщения в родительской странице. Пример встраивания:
<h1>Test code QR</h1> <iframe src="https://whatsgate.ru/qr/6345454545454" width="310" height="310" style="border: none;"> </iframe> <div class="log" id="log"> </div> <script> window.addEventListener("message", function(event) { console.log(event); if (event.origin !== 'https://whatsgate.ru') { // что-то пришло с неизвестного домена. Давайте проигнорируем это return; } if(typeof event.data !== 'object') { // сообщение должно быть объектом. return; } if(!('module' in event.data) && event.data.module !== 'qr'){ // в объекте должно быть поле module со значением qr return; } //если мы здесь, значит сообщение верное, выведем его значение console.log( "received: " + event.data.message); //добавим сообщение в лог на родительской странице document.getElementById('log').append("received: " + event.data.message, document.createElement("br")); }); </script>
Объект сообщения содержится в поле event.data и имеет следующий формат:
{ "module" : "qr", "message" : "<message>" }
- module - всегда имеет значение qr, чтобы идентифицировать нужные сообщения
- message - могут быть следующие значения:
- loading - инициализация сессии и загрузка qr-кода. Отправляется в начале загрузки страницы
- qr - выдан и отображен qr-код. Сообщение приходит каждый раз, когда код меняется на новый.
- success - устройство успешно авторизовано в сессии, qr-код скрывается.
- error - произошла ошибка при авторизации устройства. Нужно попробовать еще раз.
- broken - попытка открыть окно с идентификатором несуществующей или закрытой сессии.