Получайте сообщения WhatsApp с помощью PHP и веб-хука

Введение

В этом руководстве мы создадим страницу для обработки входящих сообщений WhatsApp с использованием PHP.

Зависимости

для целей локальной разработки требуется служба туннелирования. В этом примере используется ngrok. Вы можете скачать ngrok отсюда .

Пример

Это очень простой пример, когда сервер записывает тело запроса в файл log.txt.

Тело содержит полную информацию о веб-перехватчике, отправленную из экземпляра WhatsApp Ultramsg API.

$data = file_get_contents("php://input");
$event = json_decode($data, true);
if(isset($event)){
	//Here, you now have event and can process them how you like e.g Add to the database or generate a response
	$file = 'log.txt';  
	$data =json_encode($event)."\n";  
	file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
}

Об использовании сервера

Сохраните приведенный выше файл примера как test.php и загрузите его на свой сервер. URL-адрес Webhook будет:

http://your-server/test.php

О локальном использовании с ngrok

Сохраните приведенный выше файл примера как test.php на вашем локальном хосте, и URL-адрес будет следующим:

http://localhost/test.php

Запускаем нгрок:

ngrok http 80

После этого вы должны увидеть
*.ngrok.io URL-адрес.
Например :
https://7647-115-83-121-164.ngrok.io
заменить локальный хост на
URL-адрес ngrok.io
URL будет:
https://7647-115-83-121-164.ngrok.io/webhook.php

Что дальше?

вставьте свой URL-адрес в настройки экземпляра.
Теперь вы сможете получать веб-хуки, и вы можете увидеть их в файле log.txt.

ПРИМЕР ОТВЕТА В JSON

{
  "event_type": "message_received",
  "instanceId": "90",
  "data": {
    "id": "[email protected]_7ECAED9EB68D3474BE591443134C2E3F",
    "from": "[email protected]",
    "to": "[email protected]",
    "ack": "pending",
    "type": "chat",
    "body": "I can't send a message using php code\nCan you help me",
    "fromMe": false,
    "isForwarded": false,
    "time": 1643311467
  }
}