คุณสามารถโคลนตัวอย่างแอพการเรียกกลับของเราได้โดยใช้ Glitch เพื่อสร้าง URL การเรียกกลับแบบสาธารณะบนเซิร์ฟเวอร์ของ Glitch ที่คุณสามารถใช้ทดสอบ Webhooks ได้ วัตถุประสงค์ของการสร้างโปรเจ็กต์ Glitch ขึ้นมาก็คือวิธีนี้จะเขียนเพย์โหลด Webhook ลงในไฟล์บันทึก ซึ่งคุณจะดูได้แบบเรียลไทม์ในขณะที่มีการทริกเกอร์ Webhooks
คู่มือนี้เป็นส่วนหนึ่งของกระบวนการแบบหลายขั้นตอน และคุณต้องดำเนินการขั้นตอนต่างๆ เหล่านี้ให้เสร็จสมบูรณ์ก่อนจะเริ่มกำหนดค่าตำแหน่งข้อมูลของแอพตัวอย่างโดยใช้ Glitch คุณต้องดำเนินการต่อไปนี้ให้เสร็จสมบูรณ์
คุณสามารถดูคำแนะนำฉบับเต็มเกี่ยวกับการเริ่มต้นใช้งาน API ระบบคลาวด์ของ WhatsApp Business เพื่อให้สามารถส่งข้อความทดสอบรายการแรกได้ที่เริ่มต้นใช้งาน API ระบบคลาวด์ของ WhatsApp Business
.env
ให้อัพเดตค่าของ WEBHOOK_VERIFY_TOKEN
เป็นสตริงแบบสุ่มตามที่คุณต้องการ จากนั้น คุณสามารถเลือกที่จะคัดลอกค่าของโทเค็นการเข้าถึงแบบชั่วคราว/ถาวรจาก WhatsApp > การตั้งค่า API ในแดชบอร์ดของแอพ แล้ววางค่าดังกล่าวในส่วน GRAPH_API_TOKEN
ได้
/webhook
ที่ส่วนท้ายของ URL เพื่อรับ URL การเรียกกลับแบบสมบูรณ์ โดยจะมีลักษณะเหมือนกับ https://<project-name>.glitch.me/webhook
เมื่อตำแหน่งข้อมูลของคุณพร้อมแล้ว คุณต้องกลับไปที่แดชบอร์ดของแอพ
https://<project-name>.glitch.me/webhook
) สำหรับ URL การเรียกกลับและ ("HAPPY") สำหรับโทเค็นการตรวจสอบยืนยันหากต้องการยืนยันว่ามีการทริกเกอร์การแจ้งเตือน Webhook แล้ว ให้กลับไปยัง Glitch แล้วเลือก "LOGS" (บันทึก) และผลลัพธ์ควรมีลักษณะดังภาพด้านล่างนี้
เพย์โหลดการแจ้งเตือน Webhook ที่สมบูรณ์ควรมีลักษณะดังนี้{ "object": "whatsapp_business_account", "entry": [ { "id": "0", "changes": [ { "field": "messages", "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "16505551111", "phone_number_id": "123456123" }, "contacts": [ { "profile": { "name": "test user name" }, "wa_id": "16315551181" } ], "messages": [ { "from": "16315551181", "id": "ABGGFlA5Fpa", "timestamp": "1504902988", "type": "text", "text": { "body": "this is a text message" } } ] } } ] } ] }
server.js
ในเมนูนำทางด้านซ้ายเพื่อนำตำแหน่งข้อมูล Webhook มาใช้
https://<project-name.glitch.me/webhook
Incoming webhook: {"messages":[{"from":"1234567890","id":"ABGGhSkIc2B_Ago-sDy5BNm-1gI5","text":{"body":"Hi"},"timestamp":"1529381066","type":"text"}]} Incoming webhook: {"statuses":[{"id":"gBGGhSkIc2B_AgkXDygfSDwgG5s","recipient_id":"1234567890","status":"sent","timestamp":"1529381072"}]} Incoming webhook: {"statuses":[{"id":"gBGGhSkIc2B_AgkXDygfSDwgG5s","recipient_id":"1234567890","status":"delivered","timestamp":"1529381072"}]} Incoming webhook: {"statuses":[{"id":"gBGGhSkIc2B_AgkXDygfSDwgG5s","recipient_id":"1234567890","status":"read","timestamp":"1529381076"}]}