easyCoexistence
Conectați-văÎncepeți perioada de probă gratuită
Meta Tech Provider

Trimiteți și primiți mesaje WhatsApp din Python

Primirea se face printr-o rută din framework-ul web, care răspunde la cererea GET de verificare a Meta și acceptă cereri POST. Trimiterea este o cerere HTTPS către Cloud API, cu phone_number_id și token-ul numărului. Nu oferim SDK și nu aveți nimic de instalat.

2 handlers

Un GET pentru verificarea Meta și un POST pentru evenimente. Aceasta este partea de primire.

24 hours

Intervalul de după mesajul unui client în care puteți trimite text liber.

131047

Eroarea returnată când trimiteți text liber în afara acestui interval.

Cum primiți mesaje în Python?

Cu două gestionare pe aceeași rută, în orice framework folosiți deja.

Gestionarul GET răspunde la verificarea Meta. Citește hub.mode, hub.verify_token și hub.challenge din șirul de interogare, verifică token-ul față de cel propriu și returnează challenge ca body brut. Returnarea unui JSON aici este cea mai frecventă greșeală și eșuează fără semnalizare.

Gestionarul POST primește evenimente. Returnați rapid 200 și procesați apoi, deoarece Meta tratează un răspuns lent ca pe un eșec și va reîncerca, ceea ce înseamnă că veți procesa același mesaj de două ori. Puneți-l într-o coadă sau transmiteți-l unei sarcini de fundal, în loc să faceți procesarea în linie.

Mesajele sosesc cu un ID de mesaj wamid. Merită să eliminați duplicatele folosindu-l încă de la început, deoarece reîncercările sunt normale, nu excepționale.

Cum trimiteți?

Un singur POST către endpoint-ul messages din Cloud API pentru phone_number_id, cu un token bearer.

Ambele valori provin din conexiune: dashboard-ul le afișează, iar get_api_credentials le returnează dacă preferați ca un asistent să le preia. Nimic din apel nu este specific nouă, așadar funcționează orice bibliotecă HTTP, iar cererea arată exact ca în documentația Meta.

Ce se schimbă în funcție de moment este body-ul. În primele 24 de ore de la ultimul mesaj al clientului trimiteți un obiect text. După acest interval trimiteți un obiect template, cu numele unui template aprobat și limba acestuia. Un client care cunoaște doar prima structură funcționează perfect la testare și eșuează la primul mesaj primit peste noapte, returnând eroarea 131047.

De ce are nevoie un gestionar de producție în plus?

Trei lucruri ușor de omis și costisitoare de adăugat mai târziu.

Eliminați duplicatele pe baza ID-ului mesajului, deoarece Meta reîncearcă. Verificați semnătura cererii dacă sunteți expuși public, altfel oricine vă află URL-ul poate publica date către acesta. Și diferențiați în funcție de cât timp a trecut de la ultimul mesaj al contactului, astfel încât calea de trimitere să aleagă textul sau template-ul fără ca o persoană să decidă.

Niciuna dintre acestea nu necesită un framework sau o bibliotecă. Sunt o setare, o verificare și o comparație, iar implementarea lor înaintea primului client face diferența dintre o integrare care rulează discret și una care vă trimite alerte.

Greșeli frecvente

  • Returnarea unui JSON la GET-ul de verificare în locul valorii brute challenge.
  • Procesarea în linie înainte de returnarea lui 200. Meta reîncearcă răspunsurile lente și procesați mesajul de două ori.
  • Trimiterea de text liber fără verificarea intervalului. Returnează 131047 și pare că nu s-a întâmplat nimic.
Faceți acest lucru cu EasyCoexistence

Conectați numărul la easycoexistence.com, setați destinația webhook-ului la ruta dumneavoastră și citiți phone_number_id și token-ul din dashboard. De la US$ 9 pe număr pe lună, până la US$ 2 la volum, cu primele 7 zile gratuite.

Întrebări frecvente

Există un SDK Python?

Nu din partea noastră și nu aveți nevoie de unul. API-ul aparține Meta, este documentat de Meta și poate fi accesat cu orice bibliotecă HTTP.

Ce framework ar trebui să folosesc?

Oricare. Cerința este o rută care răspunde la un GET și acceptă un POST, lucru oferit de orice framework web Python.

Cum evit procesarea aceluiași mesaj de două ori?

Eliminați duplicatele pe baza ID-ului de mesaj wamid din payload. Meta reîncearcă intenționat, deci acest caz este așteptat, nu unul marginal.

Poate echipa să folosească în continuare telefonul?

Da. Coexistence păstrează funcțională aplicația WhatsApp Business pe același număr, iar gestionarul dumneavoastră vede ce trimit membrii echipei ca eveniment echo.

Continuați să citiți

Gata să începeți?

Configurați WhatsApp Coexistence în câteva minute, nu luni. Aplicația continuă să funcționeze pe telefon.

Începeți perioada de probă gratuită

Verificat la

Trimiteți WhatsApp din Python