Kuthibitisha endpoint ya webhook ya WhatsApp
Kabla ya kupeleka tukio lolote, Meta hupigia endpoint yako kwa GET iliyo na hub.mode, hub.verify_token na hub.challenge. Endpoint yako lazima ilinganishe token na irudishe challenge kama mwili ghafi. Jibu lingine lolote huzuia uwasilishaji kuanza.
Thamani inayopaswa kurudishwa kama mwili wa jibu.
Thamani ya hub.mode kwenye ombi la uthibitishaji.
Mpango pekee ambao Meta itathibitisha. HTTP hukataliwa kabla ya ombi.
Meta hutuma nini hasa?
Ombi la GET kwa URL yako likiwa na vigezo vitatu vya query. hub.mode huwekwa kuwa subscribe. hub.verify_token ni token uliyoweka ulipoweka mahali pa kupeleka. hub.challenge ni thamani ambayo Meta hutengeneza kwa jaribio hili.
Endpoint yako inapaswa kulinganisha hub.verify_token na token uliyochagua. Zikilingana, jibu kwa 200 huku hub.challenge ikiwa mwili mzima wa jibu. Usiifunge kwenye JSON, usiweke alama za nukuu kuizunguka, wala usiongeze mstari mpya ambao baadhi ya mifumo huongeza kwa chaguo-msingi.
Token zisipolingana, jibu kwa 403. Huo ndio utaratibu mzima, na umeundwa kuwa mfupi kwa makusudi.
Kwa nini jibu baya hushindwa kimya?
Kwa sababu kushindwa kwa uthibitishaji si hitilafu katika mfumo wako, bali ni kutokuwepo kwa uthibitishaji katika mfumo wa Meta.
Challenge isiporudishwa kwa usahihi, Meta huacha tu kupeleka kwenye mahali hapo. Server yako hurudisha 200 kwa uthibitishaji, kumbukumbu zako zinaonyesha kuwa ombi limewasili, na hakuna dashboard inayoripoti tatizo. Dalili pekee ni kwamba jumbe haziji, jambo ambalo wengi hulitambua kama tatizo la Coexistence badala ya tatizo la handshake.
Ndiyo maana ni muhimu kuthibitisha kabla ya ombi. Tunaangalia kuwa URL ni HTTPS na kuwa token ya uthibitishaji imetolewa kabla ya kufanya ombi la Graph, hivyo mahali palipoundwa vibaya hushindwa mara moja badala ya kuonekana kuwa kimeunganishwa.
Ni nini kingine kinaweza kuzuia uthibitishaji?
Mambo matatu ambayo hayahusiani na msimbo.
Uthibitishaji mbele ya endpoint. Gateway, safu ya basic auth au orodha ya IP zinazoruhusiwa itakataa ombi la Meta, na Meta haina sifa za kuingia za kutumia. Njia ya uthibitishaji lazima ifikike bila hizo.
Uelekezaji mwingine. Meta hupigia URL uliyoitoa, na 301 kwenda kwenye host ya msingi haifuatwi kwa njia inayokamilisha handshake. Ipe URL ya mwisho.
Pia, framework inayobadilisha muundo wa jibu. Kurudisha maandishi kutoka kwa handler inayofunga kila kitu kwenye JSON huunda mwili wenye alama za nukuu kuzunguka challenge, hivyo haulingani.
Makosa ya kawaida
- Kurudisha JSON. Mwili lazima uwe thamani ghafi ya challenge bila kitu kingine kuizunguka.
- Kuweka endpoint nyuma ya uthibitishaji. Meta haina sifa za kuingia na ombi litakataliwa.
- Kumpa Meta URL inayofanya uelekezaji mwingine. Tumia URL ya mwisho.
EasyCoexistence huthibitisha kuwa mahali pa kupeleka ni HTTPS na kina token ya uthibitishaji kabla ya kupigia Meta, kisha huhifadhi handshake iliyoshindwa kwenye ratiba ya muunganisho badala ya kuondoa mahali hapo.
Maswali yanayoulizwa mara kwa mara
Nitume token gani?
String yoyote utakayochagua. Ipo ili endpoint yako itofautishe ombi la Meta na ombi la mtu mwingine anayepata URL.
Uthibitishaji hutokea mara ngapi?
Wakati wa usanidi, na tena kila mahali pa kupeleka kinapowekwa. Endpoint inayofanya kazi haithibitishwi tena kwa kila tukio.
Naweza kuijaribu mwenyewe?
Ndiyo. Piga endpoint yako ukiwa na vigezo vitatu, kisha hakikisha mwili unarudi ukiwa thamani ileile ya challenge.
Itakuwaje ikiwa server yangu ilikuwa chini wakati wa uthibitishaji?
Handshake hushindwa na mahali pa kupeleka hakiwashi. Kukihifadhi tena huendesha uthibitishaji upya.
Endelea kusoma
Uko tayari kuanza?
Sanidi WhatsApp Coexistence kwa dakika chache, si miezi. Programu inaendelea kufanya kazi kwenye simu.
Anza kipindi cha majaribio bila malipoImethibitishwa kwenye