Meta Tech Provider

Memverifikasi endpoint webhook WhatsApp

Sebelum mengirim event apa pun, Meta memanggil endpoint Anda dengan GET yang membawa hub.mode, hub.verify_token, dan hub.challenge. Endpoint Anda harus membandingkan token lalu mengembalikan challenge sebagai body mentah. Selain itu, pengiriman tidak akan dimulai.

hub.challenge

Nilai yang harus dikembalikan sebagai body respons.

subscribe

Nilai hub.mode pada permintaan verifikasi.

HTTPS

Satu-satunya skema yang akan diverifikasi Meta. HTTP ditolak sebelum panggilan dilakukan.

Apa tepatnya yang dikirim Meta?

Permintaan GET ke URL Anda dengan tiga parameter query. hub.mode diatur ke subscribe. hub.verify_token adalah token yang Anda konfigurasikan saat mengatur tujuan. hub.challenge adalah nilai yang dibuat Meta untuk percobaan ini.

Endpoint Anda harus membandingkan hub.verify_token dengan token yang Anda pilih. Jika cocok, berikan respons 200 dengan hub.challenge sebagai seluruh body respons. Jangan membungkusnya dalam JSON, jangan menambahkan tanda kutip, dan jangan menambahkan baris baru di akhir yang mungkin ditambahkan beberapa framework secara default.

Jika token tidak cocok, berikan respons 403. Itulah seluruh protokolnya, dan memang sengaja dibuat sederhana.

Mengapa jawaban yang salah gagal tanpa notifikasi?

Karena kegagalan verifikasi bukan kesalahan dalam sistem Anda, melainkan ketiadaan verifikasi dalam sistem Meta.

Saat challenge tidak dikembalikan dengan benar, Meta tidak mulai mengirim ke tujuan tersebut. Server Anda mengembalikan 200 untuk verifikasi, log menunjukkan bahwa permintaan telah tiba, dan tidak ada dashboard yang melaporkan masalah. Satu-satunya gejala adalah pesan tidak pernah datang, sehingga kebanyakan orang mendiagnosisnya sebagai masalah Coexistence, bukan masalah proses jabat tangan.

Itulah alasan validasi sebelum panggilan layak dilakukan. Kami memeriksa bahwa URL menggunakan HTTPS dan token verifikasi telah diberikan sebelum membuat permintaan Graph, sehingga tujuan yang tidak valid langsung gagal dan tidak terlihat seolah-olah sudah terhubung.

Apa lagi yang dapat menghambat verifikasi?

Tiga hal yang tidak berkaitan dengan kode.

Autentikasi di depan endpoint. Gateway, lapisan basic auth, atau daftar izin IP akan menolak permintaan Meta, dan Meta tidak memiliki kredensial untuk diberikan. Rute verifikasi harus dapat dijangkau tanpa autentikasi tersebut.

Pengalihan. Meta memanggil URL yang Anda berikan, dan pengalihan 301 ke host kanonis tidak diikuti dengan cara yang menyelesaikan proses jabat tangan. Berikan URL final.

Framework yang membuat serialisasi respons juga dapat menjadi masalah. Mengembalikan string dari handler yang membungkus semuanya dalam JSON menghasilkan body dengan tanda kutip di sekitar challenge, sehingga tidak cocok.

Kesalahan umum

  • Mengembalikan JSON. Body harus berupa nilai challenge mentah tanpa tambahan apa pun.
  • Menempatkan endpoint di balik autentikasi. Meta tidak memiliki kredensial dan permintaannya akan ditolak.
  • Memberikan Meta URL yang melakukan pengalihan. Gunakan URL final.
Melakukan ini dengan EasyCoexistence

EasyCoexistence memvalidasi bahwa tujuan menggunakan HTTPS dan memiliki token verifikasi sebelum memanggil Meta, lalu mencatat proses jabat tangan yang gagal di timeline koneksi, bukan membuang tujuan tersebut.

Pertanyaan yang sering diajukan

Token apa yang sebaiknya saya gunakan?

String apa pun yang Anda pilih. Token ini memungkinkan endpoint Anda membedakan permintaan Meta dari permintaan pihak lain yang mengetahui URL tersebut.

Seberapa sering verifikasi dilakukan?

Saat penyiapan, dan setiap kali tujuan ditetapkan. Endpoint yang berfungsi tidak diverifikasi ulang pada setiap event.

Bisakah saya mengujinya sendiri?

Bisa. Panggil endpoint Anda sendiri dengan tiga parameter tersebut, lalu periksa bahwa body yang dikembalikan persis sama dengan nilai challenge.

Bagaimana jika server saya tidak aktif saat verifikasi?

Proses jabat tangan gagal dan tujuan tidak diaktifkan. Menyimpannya kembali akan menjalankan proses tersebut lagi.

Lanjut membaca

Siap memulai?

Konfigurasikan WhatsApp Coexistence dalam hitungan menit, bukan bulan. Aplikasi tetap berfungsi di ponsel.

Mulai uji coba gratis

Diverifikasi pada

Verifikasi Webhook WhatsApp