Slanje i primanje WhatsApp poruka iz Pythona
Primanje je ruta u vašem web-okviru koja odgovara na Metin GET za provjeru i prihvaća POST zahtjeve. Slanje je HTTPS zahtjev prema Cloud API-ju s poljem phone number id i tokenom. Nemamo SDK, a ništa ne morate instalirati.
GET za Metinu provjeru i POST za događaje. To je dio za primanje.
Razdoblje nakon poruke korisnika u kojem se može slati slobodni tekst.
Pogreška koja se vraća kada slobodni tekst šaljete izvan tog razdoblja.
Kako primati poruke u Pythonu?
S pomoću dva obrađivača na jednoj ruti, u bilo kojem web-okviru koji već koristite.
GET obrađivač odgovara na Metinu provjeru. Iz upita čita hub.mode, hub.verify_token i hub.challenge, provjerava token prema vašem tokenu i vraća challenge kao sirovo tijelo odgovora. Vraćanje JSON-a ovdje najčešća je pogreška i neuspjeh prolazi neprimijećeno.
POST obrađivač prima događaje. Brzo vratite 200, a posao obavite poslije jer Meta spori odgovor smatra neuspjehom i ponavlja zahtjev, zbog čega istu poruku možete obraditi dvaput. Stavite je u red čekanja ili proslijedite pozadinskom zadatku umjesto da obradu izvršavate izravno.
Poruke stižu s ID-jem poruke wamid. Dedupliciranje prema njemu isplati se uvesti odmah jer su ponovljeni zahtjevi uobičajeni, a ne iznimni.
Kako šaljati?
Jednim POST zahtjevom prema endpointu messages u Cloud API-ju za phone number id, uz bearer token.
Obje vrijednosti dolaze iz veze: nadzorna ploča ih prikazuje, a get_api_credentials ih vraća ako želite da ih pomoćnik dohvaća. Poziv nije ni po čemu specifičan za nas, pa radi bilo koja HTTP biblioteka, a zahtjev izgleda točno kao u Metinoj dokumentaciji.
Vrijeme slanja mijenja tijelo zahtjeva. Unutar 24 sata od posljednje poruke korisnika šaljete objekt text. Izvan tog razdoblja šaljete objekt template s nazivom odobrenog predloška i njegovim jezikom. Klijent koji poznaje samo prvi oblik savršeno radi tijekom testiranja, ali ne uspijeva s prvom noćnom porukom i vraća pogrešku 131047.
Što proizvodni obrađivač treba osim toga?
Tri stvari koje je lako preskočiti, a skupo naknadno dodati.
Deduplicirajte prema ID-ju poruke jer Meta ponavlja zahtjeve. Provjerite potpis zahtjeva ako ste javno izloženi jer vam u suprotnom svatko tko sazna URL može slati zahtjeve. Granajte i prema tome koliko je vremena prošlo od posljednje poruke kontakta, kako bi put slanja sam odabrao text ili template bez odluke čovjeka.
Za ništa od toga nisu potrebni web-okvir ni biblioteka. To su skup, provjera i usporedba, a njihovo postavljanje prije prvog klijenta razlikuje integraciju koja tiho radi od one koja vas stalno upozorava.
Uobičajene pogreške
- Vraćanje JSON-a iz GET-a za provjeru umjesto sirove vrijednosti challenge.
- Obrada prije vraćanja 200. Meta ponavlja spore zahtjeve pa poruku obrađujete dvaput.
- Slanje slobodnog teksta bez provjere razdoblja. Vraća 131047 i izgleda kao da se ništa nije dogodilo.
Povežite broj na easycoexistence.com, postavite odredište webhooka na svoju rutu i pročitajte phone number id i token s nadzorne ploče. Od US$ 9 po broju mjesečno, do US$ 2 pri većem obujmu, uz prvih 7 dana besplatno.
Često postavljana pitanja
Postoji li Python SDK?
Ne naš. Nije vam potreban. API pripada Meti, Meta ga dokumentira i dostupan je putem bilo koje HTTP biblioteke.
Koji web-okvir trebam koristiti?
Bilo koji. Potrebna je ruta koja odgovara na GET i prihvaća POST, što podržava svaki Python web-okvir.
Kako izbjeći dvostruku obradu poruke?
Deduplicirajte prema ID-ju poruke wamid u payloadu. Meta namjerno ponavlja zahtjeve, pa je to očekivano, a ne rubni slučaj.
Može li tim i dalje koristiti telefon?
Da. Coexistence omogućuje rad aplikacije WhatsApp Business na istom broju, a vaš obrađivač vidi ono što tim šalje kao događaj odraza.
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