Provjera WhatsApp webhook endpointa
Prije isporuke bilo kojeg događaja Meta poziva vaš endpoint GET zahtjevom koji sadržava hub.mode, hub.verify_token i hub.challenge. Vaš endpoint mora usporediti token i vratiti izazov kao sirovo tijelo odgovora. U suprotnom isporuka nikad ne počinje.
Vrijednost koju morate vratiti kao tijelo odgovora.
Vrijednost hub.mode u zahtjevu za provjeru.
Jedina shema koju će Meta provjeriti. HTTP se odbija prije poziva.
Što točno Meta šalje?
GET zahtjev na vaš URL s tri parametra upita. hub.mode postavljen je na subscribe. hub.verify_token je token koji ste konfigurirali pri postavljanju odredišta. hub.challenge je vrijednost koju Meta generira za ovaj pokušaj.
Vaš endpoint treba usporediti hub.verify_token s tokenom koji ste odabrali i, ako se podudaraju, odgovoriti statusom 200 uz hub.challenge kao cijelo tijelo odgovora. Ne umotavajte ga u JSON, ne stavljajte navodnike oko njega i ne dodajte završni novi redak koji neki okviri dodaju prema zadanim postavkama.
Ako se tokeni ne podudaraju, odgovorite statusom 403. To je cijeli protokol i namjerno je malen.
Zašto pogrešan odgovor ne uspijeva vidljivo?
Zato što neuspjela provjera nije pogreška u vašem sustavu, nego izostanak u sustavu Meta.
Kada se izazov ne vrati ispravno, Meta jednostavno ne počinje isporučivati na to odredište. Vaš poslužitelj vraća 200 na provjeru, zapisnici pokazuju da je zahtjev stigao, a nijedna nadzorna ploča ne prijavljuje problem. Jedini je znak to što poruke nikad ne stižu, pa većina ljudi to dijagnosticira kao problem s Coexistence, a ne kao problem rukovanja.
Zato se isplati provjeriti sve prije poziva. Provjeravamo koristi li URL HTTPS i je li token za provjeru naveden prije slanja Graph zahtjeva, pa neispravno odredište odmah ne uspijeva umjesto da izgleda povezano.
Što još može blokirati provjeru?
Tri stvari koje nemaju veze s kôdom.
Provjera autentičnosti ispred endpointa. Gateway, sloj osnovne provjere autentičnosti ili popis dopuštenih IP adresa odbit će Metin zahtjev jer Meta nema vjerodajnice koje bi mogla poslati. Ruta za provjeru mora biti dostupna bez njih.
Preusmjeravanje. Meta poziva URL koji ste joj dali, a preusmjeravanje 301 na kanonski host ne prati se na način koji dovršava rukovanje. Navedite završni URL.
I okvir koji serijalizira odgovor. Vraćanje niza iz obrađivača koji sve umotava u JSON stvara tijelo s navodnicima oko izazova, pa se vrijednosti ne podudaraju.
Uobičajene pogreške
- Vraćanje JSON-a. Tijelo mora biti sirova vrijednost izazova, bez ičega oko nje.
- Postavljanje endpointa iza provjere autentičnosti. Meta nema vjerodajnice i zahtjev će biti odbijen.
- Davanje Meti URL-a koji preusmjerava. Upotrijebite završni URL.
EasyCoexistence provjerava koristi li odredište HTTPS i ima li token za provjeru prije poziva Meti te bilježi neuspjelo rukovanje na vremenskoj traci veze umjesto odbacivanja odredišta.
Često postavljana pitanja
Koji token trebam upotrijebiti?
Bilo koji niz koji odaberete. Služi tome da vaš endpoint razlikuje Metin zahtjev od zahtjeva bilo koga drugoga tko sazna URL.
Koliko se često provjera provodi?
Pri postavljanju i ponovno svaki put kada se odredište postavi. Ispravan endpoint ne provjerava se ponovno pri svakom događaju.
Mogu li ga sam testirati?
Da. Pozovite vlastiti endpoint s ta tri parametra i provjerite vraća li se u tijelu točno vrijednost izazova.
Što ako je moj poslužitelj bio nedostupan tijekom provjere?
Rukovanje ne uspijeva i odredište se ne aktivira. Ponovnim spremanjem provjera se ponovno pokreće.
Nastavite čitati
Spremni za početak?
Postavite WhatsApp Coexistence u nekoliko minuta, a ne mjeseci. Aplikacija i dalje radi na telefonu.
Započnite besplatno probno razdobljeProvjereno na