Terima pesan WhatsApp menggunakan PHP dan webhook

pengantar

Dalam tutorial ini, kita akan membuat halaman untuk menangani pesan WhatsApp yang masuk menggunakan PHP.

Ketergantungan

untuk tujuan pembangunan lokal, layanan tunneling diperlukan. Contoh ini menggunakan ngrok , Anda dapat mengunduh ngrok dari sini .

Contoh

Ini adalah contoh yang sangat sederhana, dengan server mencatat isi dari permintaan ke file log.txt.

Tubuh berisi informasi webhook lengkap yang dikirim dari instans WhatsApp 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);
}

Pada Penggunaan Server

Simpan file contoh di atas sebagai test.php dan unggah ke server Anda, URL Webhook akan menjadi:

http://your-server/test.php

Pada Penggunaan Lokal dengan ngrok

Simpan file contoh di atas sebagai test.php di localhost Anda dan URL-nya akan menjadi:

http://localhost/test.php

Mulai ngrok :

ngrok http 80

Setelah ini, Anda akan melihat
*.ngrok.io URL.
Misalnya :
https://7647-115-83-121-164.ngrok.io
ganti localhost dengan
ngrok.io URL
URL akan menjadi:
https://7647-115-83-121-164.ngrok.io/webhook.php

Apa berikutnya?

rekatkan URL Anda di pengaturan Instance.
Anda seharusnya dapat menerima webhook sekarang dan Anda dapat melihatnya di file log.txt.

CONTOH JSON RESPONS

{
  "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
  }
}