easyCoexistence
Kirjaudu sisäänAloita ilmainen kokeilu
Meta Tech Provider

Lähetä ja vastaanota WhatsApp-viestejä Pythonilla

Vastaanotto on verkkokehyksesi reitti, joka vastaa Metan vahvistuksen GET-pyyntöön ja hyväksyy POST-pyynnöt. Lähetys on HTTPS-pyyntö Cloud API -rajapintaan, jossa käytetään numeron phone number id -kenttää ja tokenia. Meiltä ei tarvita SDK:ta eikä mitään asennettavaa.

2 handlers

GET-pyyntö Metan vahvistusta varten ja POST-pyyntö tapahtumia varten. Se on vastaanottopuoli.

24 hours

Asiakkaan viestin jälkeinen aikaikkuna, jolloin vapaamuotoinen teksti lähtee.

131047

Virhe, joka palautetaan, kun lähetät vapaamuotoista tekstiä aikaikkunan ulkopuolella.

Miten viestejä vastaanotetaan Pythonilla?

Kahdella käsittelijällä yhdellä reitillä, käyttämästäsi verkkokehyksestä riippumatta.

GET-käsittelijä vastaa Metan vahvistukseen. Se lukee kyselymerkkijonosta hub.mode-, hub.verify_token- ja hub.challenge-arvot, tarkistaa tokenin omaa tokeniasi vasten ja palauttaa challengen raakasisältönä. JSON-vastauksen palauttaminen tässä on yleisin virhe, ja se epäonnistuu hiljaisesti.

POST-käsittelijä vastaanottaa tapahtumat. Palauta 200 nopeasti ja käsittele tapahtuma sen jälkeen, koska Meta tulkitsee hitaan vastauksen epäonnistumiseksi ja yrittää uudelleen. Sama viesti voidaan silloin käsitellä kahdesti. Aseta tapahtuma jonoon tai anna se taustatehtävälle sen sijaan, että käsittelisit sen suoraan pyynnön aikana.

Viestit saapuvat wamid-viestitunnisteen kanssa. Sen perusteella kannattaa poistaa kaksoiskappaleet heti alusta alkaen, koska uudelleenyritykset ovat tavallisia eivätkä poikkeuksia.

Miten viestejä lähetetään?

Yksi POST-pyyntö Cloud API -rajapinnan messages-endpointiin, joka käyttää phone number id -tunnistetta ja bearer-tokenia.

Molemmat arvot tulevat yhteydestä: hallintapaneeli näyttää ne, ja get_api_credentials palauttaa ne, jos haluat avustajan noutavan ne. Mikään kutsussa ei ole meille erityistä, joten mikä tahansa HTTP-kirjasto toimii ja pyyntö näyttää täsmälleen samalta kuin Metan omassa dokumentaatiossa.

Ajoitus muuttaa pyynnön sisältöä. Asiakkaan viimeisimmästä viestistä kuluneen 24 tunnin aikana lähetät text-objektin. Sen jälkeen lähetät template-objektin, jossa ilmoitetaan hyväksytty viestipohja ja sen kieli. Asiakas, joka tuntee vain ensimmäisen rakenteen, toimii testauksessa täydellisesti mutta epäonnistuu ensimmäisessä yön yli kestävässä tilanteessa ja palauttaa virhekoodin 131047.

Mitä tuotantokäsittelijä tarvitsee tämän lisäksi?

Kolme asiaa, jotka on helppo ohittaa mutta kallis lisätä myöhemmin.

Poista kaksoiskappaleet viestitunnisteen perusteella, koska Meta yrittää uudelleen. Vahvista pyynnön allekirjoitus, jos palvelusi on julkisesti käytettävissä, sillä muuten kuka tahansa URL-osoitteesi tietävä voi lähettää sinne pyyntöjä. Tee myös haara sen perusteella, kuinka kauan yhteyshenkilön viimeisimmästä viestistä on kulunut, jotta lähetyspolku valitsee text- tai template-objektin ilman ihmisen päätöstä.

Mikään näistä ei vaadi verkkokehystä tai kirjastoa. Tarvitset joukon, tarkistuksen ja vertailun. Kun ne ovat kunnossa ennen ensimmäistä asiakasta, integraatio toimii huomaamattomasti eikä jatkuvasti hälytä.

Yleiset virheet

  • JSON-vastauksen palauttaminen vahvistuksen GET-pyynnössä raakaa challenge-arvoa palauttamatta.
  • Tapahtuman käsitteleminen ennen 200-vastausta. Meta yrittää hitaita vastauksia uudelleen, jolloin käsittelet viestin kahdesti.
  • Vapaamuotoisen tekstin lähettäminen tarkistamatta aikaikkunaa. Se palauttaa virhekoodin 131047 ja näyttää siltä, ettei mitään tapahtunut.
Näin teet tämän EasyCoexistencen avulla

Yhdistä numero osoitteessa easycoexistence.com, aseta webhook-kohteeksi reittisi ja lue phone number id sekä token hallintapaneelista. Hinta on US$ 9 numerolta kuukaudessa ja volyymilla US$ 2, ensimmäiset 7 päivää maksutta.

Usein kysytyt kysymykset

Onko Pythonille SDK:ta?

Ei meiltä, etkä tarvitse sellaista. API on Metan, Meta dokumentoi sen, ja sitä voi käyttää millä tahansa HTTP-kirjastolla.

Mitä verkkokehystä pitäisi käyttää?

Mitä tahansa. Tarvitset reitin, joka vastaa GET-pyyntöön ja hyväksyy POST-pyynnön. Kaikki Pythonin verkkokehykset tukevat tätä.

Miten estän viestin käsittelyn kahdesti?

Poista kaksoiskappaleet payloadissa olevan wamid-viestitunnisteen perusteella. Meta yrittää uudelleen tarkoituksella, joten tämä on odotettua eikä poikkeustapaus.

Voiko tiimi käyttää puhelinta edelleen?

Kyllä. Coexistence pitää WhatsApp Business -sovelluksen toiminnassa samassa numerossa, ja käsittelijäsi näkee tiimin lähettämät viestit echo-tapahtumina.

Lue lisää

Valmis aloittamaan?

Ota WhatsApp Coexistence käyttöön minuuteissa, ei kuukausissa. Sovellus toimii edelleen puhelimessa.

Aloita ilmainen kokeilu

Vahvistettu

Lähetä WhatsApp-viestejä Pythonilla