Ricevi messaggi WhatsApp utilizzando PHP e webhook

introduzione

In questo tutorial creeremo una pagina per gestire i messaggi WhatsApp in arrivo utilizzando PHP.

Dipendenze

per scopi di sviluppo locale è necessario un servizio di tunneling. Questo esempio usa ngrok , puoi scaricare ngrok da qui .

Esempio

Questo è un esempio molto semplice, con il server che registra il corpo della richiesta nel file log.txt.

Il corpo contiene le informazioni complete sul webhook inviate dall’istanza WhatsApp dell’API Ultramsg.

$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);
}

Sull’utilizzo del server

Salva il file di esempio sopra come test.php e caricalo sul tuo server l’URL di Webhook sarà:

http://your-server/test.php

Su utilizzo locale con ngrok

Salva il file di esempio sopra come test.php nel tuo localhost e l’URL sarà:

http://localhost/test.php

Inizia ngrok:

ngrok http 80

Dopo questo, dovresti vedere a
*.ngrok.io URL.
per esempio :
https://7647-115-83-121-164.ngrok.io
sostituire localhost con
URL di ngrok.io
l’URL sarà:
https://7647-115-83-121-164.ngrok.io/webhook.php

Qual è il prossimo?

incolla il tuo URL nelle impostazioni dell’istanza.
Dovresti essere in grado di ricevere webhook ora e puoi vederli nel file log.txt.

ESEMPIO DI RISPOSTA 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
  }
}