Magpadala at tumanggap ng WhatsApp mula sa Python
Ang pagtanggap ay isang route sa inyong web framework na sumasagot sa verification GET ng Meta at tumatanggap ng mga POST. Ang pagpapadala ay isang HTTPS request sa Cloud API gamit ang phone number id at token ng numero. Walang SDK mula sa amin at walang kailangang i-install.
Isang GET para sa verification ng Meta at isang POST para sa events. Ito ang bahagi ng pagtanggap.
Ang window pagkatapos magpadala ng mensahe ang customer kung kailan puwedeng magpadala ng free text.
Ang error na ibinabalik kapag nagpadala kayo ng free text sa labas ng window.
Paano tumanggap ng mga mensahe sa Python?
Gamit ang dalawang handler sa isang route, sa anumang framework na ginagamit na ninyo.
Sinasagot ng GET handler ang verification ng Meta. Binabasa nito ang hub.mode, hub.verify_token at hub.challenge mula sa query string, sinusuri ang token laban sa sarili ninyong token, at ibinabalik ang challenge bilang raw body. Ang pagbabalik ng JSON dito ang pinakakaraniwang pagkakamali, at tahimik itong nabibigo.
Tumatanggap ng events ang POST handler. Magbalik agad ng 200 at gawin ang trabaho pagkatapos nito, dahil itinuturing ng Meta na failure ang mabagal na sagot at magre-retry ito. Ibig sabihin, maaaring maproseso nang dalawang beses ang parehong mensahe. I-queue ito o ipasa sa background task sa halip na iproseso nang inline.
Dumarating ang mga mensahe na may wamid message id. Makabubuting mag-deduplicate batay rito mula pa sa simula, dahil normal ang mga retry at hindi ito pambihirang pangyayari.
Paano magpadala?
Isang POST sa Cloud API messages endpoint para sa phone number id, gamit ang bearer token.
Galing sa koneksyon ang dalawang value: ipinapakita ng dashboard ang mga ito, at ibinabalik ng get_api_credentials kung mas gusto ninyong isang assistant ang kumuha. Walang bahagi ng call na partikular sa amin, kaya puwedeng gumamit ng anumang HTTP library at eksaktong katulad ng dokumentasyon ng Meta ang request.
Ang nagbabago depende sa timing ay ang body. Sa loob ng 24 oras mula sa huling mensahe ng customer, magpadala kayo ng text object. Sa labas nito, magpadala ng template object na may pangalan ng approved template at wika nito. Ang client na unang shape lang ang alam ay gumagana sa testing, pero nabibigo sa unang mensahe kinabukasan at nagbabalik ng error 131047.
Ano pa ang kailangan ng production handler?
Tatlong bagay na madaling malaktawan at magastos idagdag sa ibang pagkakataon.
Mag-deduplicate batay sa message id, dahil nagre-retry ang Meta. I-verify ang request signature kung publicly exposed kayo, dahil kung hindi, maaaring mag-post dito ang sinumang makaalam ng inyong URL. At tukuyin kung gaano na katagal mula nang huling sumulat ang contact, para awtomatikong piliin ng send path ang text o template nang hindi nagpapasya ang isang tao.
Wala sa mga ito ang nangangailangan ng framework o library. Set, check at comparison lang ang mga ito. Ang paglalagay ng mga ito bago ang unang client ang naghihiwalay sa integration na tahimik na gumagana sa integration na patuloy na nagpapadala sa inyo ng alert.
Mga karaniwang pagkakamali
- Pagbabalik ng JSON mula sa verification GET sa halip na raw challenge value.
- Pagproseso nang inline bago magbalik ng 200. Nagrere-retry ang Meta sa mabagal na sagot kaya dalawang beses ninyong napoproseso ang mensahe.
- Pagpapadala ng free text nang hindi sinusuri ang window. Nagbabalik ito ng 131047 at mukhang walang nangyari.
I-connect ang numero sa easycoexistence.com, itakda ang webhook destination sa inyong route, at kunin ang phone number id at token sa dashboard. Mula US$ 9 kada numero kada buwan, bumababa hanggang US$ 2 sa malaking volume, at libre ang unang 7 araw.
Mga madalas itanong
May Python SDK ba?
Wala mula sa amin, at hindi ninyo ito kailangan. Ang API ay pagmamay-ari ng Meta, dokumentado ng Meta, at maa-access gamit ang anumang HTTP library.
Aling framework ang dapat kong gamitin?
Anuman. Ang kailangan ay route na sumasagot sa GET at tumatanggap ng POST, na ginagawa ng bawat Python web framework.
Paano ko maiiwasang maproseso nang dalawang beses ang isang mensahe?
Mag-deduplicate batay sa wamid message id sa payload. Sadyang nagre-retry ang Meta, kaya inaasahan ito at hindi isang edge case.
Magagamit pa rin ba ng team ang telepono?
Oo. Pinananatili ng Coexistence na gumagana ang WhatsApp Business app sa parehong numero, at nakikita ng inyong handler ang ipinapadala nila bilang echo event.
Magpatuloy sa pagbabasa
Handa na po ba kayong magsimula?
I-set up ang WhatsApp Coexistence sa loob ng ilang minuto, hindi buwan. Patuloy na gumagana ang app sa telepono.
Magsimula ng Libreng TrialNa-verify noong