Команда открывает сессию WhatsApp для привязки к сервису. После открытия сессии необходимо авторизовать WhatsApp через мобильное приложение и QR-код. Если сессия не нужна, то ее необходимо закрыть командой session-delete
Для отправки сообщения инициируется POST-запрос на адрес:
https://whatsgate.ru/api/v1/session-create
В теле запроса передается объект:
{
"name" : "My WhatsApp",
"callback" : "https://callback.my/script.handler"
}
Объект успешного ответа на запрос
{
"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": "Инициализация",
"qr_link": "https://whatsgate.ru/qr/6345454545454"
}
}
Окно авторизации по QR-коду открывается по ссылке:
https://whatsgate.ru/qr/<unique_id>
Для удобства, данная ссылка передается в поле qr_link при создании сессии. 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>"
}