easyCoexistence
Prijavite seZapočnite besplatni probni period
Meta Tech Provider

Slanje i primanje WhatsApp poruka iz Pythona

Primanje je ruta u vašem veb okviru koja odgovara na Metin verifikacioni GET i prihvata POST zahteve. Slanje je HTTPS zahtev ka Cloud API-ju sa phone number id i tokenom. Nema našeg SDK-a niti bilo čega za instaliranje.

2 handlers

GET za Metinu verifikaciju i POST za događaje. To je strana za primanje.

24 hours

Vremenski prozor nakon poruke korisnika u kojem se šalje slobodan tekst.

131047

Greška koja se vraća kada pošaljete slobodan tekst van tog prozora.

Kako primate poruke u Pythonu?

Sa dva rukovaoca na jednoj ruti, u okviru koji već koristite.

GET rukovalac odgovara na Metinu verifikaciju. Čita hub.mode, hub.verify_token i hub.challenge iz upita, proverava token u odnosu na vaš i vraća challenge kao neobrađeno telo. Vraćanje JSON-a ovde je najčešća greška i neprimetno ne uspeva.

POST rukovalac prima događaje. Brzo vratite 200, a posao obavite kasnije, jer Meta sporu reakciju tretira kao grešku i ponavlja zahtev, što znači da istu poruku možete obraditi dvaput. Stavite je u red čekanja ili prosledite zadatku u pozadini, umesto da obradu radite unutar zahteva.

Poruke stižu sa wamid identifikatorom poruke. Vredi odmah uvesti uklanjanje duplikata po njemu, jer su ponovljeni zahtevi uobičajeni, a ne izuzetak.

Kako šaljete?

Jednim POST zahtevom ka messages endpointu Cloud API-ja za phone number id, uz bearer token.

Obe vrednosti dolaze iz veze: kontrolna tabla ih prikazuje, a get_api_credentials ih vraća ako želite da ih pomoćnik preuzme. Ništa u pozivu nije posebno za nas, pa radi svaka HTTP biblioteka, a zahtev izgleda tačno kao u Metinoj dokumentaciji.

Ono što se menja u zavisnosti od vremena jeste telo zahteva. U roku od 24 sata od poslednje poruke korisnika šaljete objekat tekstualne poruke. Posle toga šaljete objekat šablona sa nazivom odobrenog šablona i njegovim jezikom. Klijent koji poznaje samo prvi oblik savršeno radi u testiranju, ali ne uspeva pri prvoj noćnoj poruci i vraća grešku 131047.

Šta je proizvodnom rukovaocu potrebno pored toga?

Tri stvari koje je lako preskočiti, a skupo naknadno dodati.

Uklanjajte duplikate po identifikatoru poruke, jer Meta ponavlja zahteve. Proverite potpis zahteva ako ste javno dostupni, jer bi svako ko sazna vaš URL inače mogao da šalje zahteve. Granajte i prema tome koliko je vremena prošlo od poslednje poruke kontakta, kako bi putanja slanja sama izabrala tekst ili šablon.

Za ovo vam nisu potrebni ni okvir ni biblioteka. To su skup, provera i poređenje, a njihovo uvođenje pre prvog klijenta pravi razliku između integracije koja nečujno radi i one koja vas stalno upozorava.

Česte greške

  • Vraćanje JSON-a iz verifikacionog GET-a umesto sirove vrednosti challenge.
  • Obrada unutar zahteva pre vraćanja 200. Meta ponavlja spore zahteve, pa poruku obrađujete dvaput.
  • Slanje slobodnog teksta bez provere vremenskog prozora. Vraća se 131047 i izgleda kao da se ništa nije dogodilo.
Ovo radite uz EasyCoexistence

Povežite broj na easycoexistence.com, podesite odredište webhooka na svoju rutu i pročitajte phone number id i token iz kontrolne table. Od US$ 9 po broju mesečno, do US$ 2 pri većem obimu, uz prvih 7 dana besplatno.

Često postavljana pitanja

Da li postoji Python SDK?

Ne od nas, a nije vam ni potreban. API pripada Meti, Meta ga dokumentuje i dostupan je preko svake HTTP biblioteke.

Koji okvir treba da koristim?

Bilo koji. Potrebna je ruta koja odgovara na GET i prihvata POST, a to podržava svaki Python veb okvir.

Kako da izbegnem dvostruku obradu poruke?

Uklanjajte duplikate po wamid identifikatoru poruke u payloadu. Meta namerno ponavlja zahteve, pa je to očekivano, a ne rubni slučaj.

Da li tim i dalje može da koristi telefon?

Da. Coexistence zadržava WhatsApp Business aplikaciju na istom broju, a vaš rukovalac vidi ono što tim pošalje kao echo događaj.

Nastavite sa čitanjem

Spremni da počnete?

Podesite WhatsApp Coexistence za nekoliko minuta, a ne meseci. Aplikacija nastavlja da radi na telefonu.

Započnite besplatni probni period

Provereno na

Slanje WhatsApp poruka iz Pythona