easyCoexistence
Mag-log inMagsimula ng Libreng Trial
Meta Tech Provider

Magpadala at tumanggap ng WhatsApp mula sa Node.js

Ang pagtanggap ay isang route na sumasagot sa GET para sa verification ng Meta at tumatanggap ng POST. Ang pagpapadala ay isang fetch call sa Cloud API gamit ang phone number id at token ng numero. Wala kaming SDK at walang kailangang i-install.

2 handlers

Isang GET para sa verification ng Meta at isang POST para sa events.

24 hours

Ang window pagkatapos magpadala ng mensahe ang customer kung kailan maaaring magpadala ng free text.

131047

Ang error na ibinabalik kapag nagpadala ng free text sa labas ng window.

Paano tumatanggap ng mga mensahe sa Node?

Isang route na may dalawang method, gamit ang Express, Fastify, Next route handler o plain server.

Sinasagot ng GET ang verification ng Meta: basahin ang hub.mode, hub.verify_token at hub.challenge mula sa query, ikumpara ang token sa inyong token, at ibalik ang challenge bilang plain text. Karaniwang pagkakamali ang pagbabalik nito bilang JSON. Magmumukhang tama ang endpoint, pero wala itong matatanggap kailanman.

Tumatanggap ang POST ng events. Magbalik agad ng 200 at iproseso pagkatapos. Inuulit ng Meta ang mababagal na request, kaya kapag nagproseso muna ang handler bago sumagot, makikita ang parehong mensahe nang higit sa isang beses. Lalo na sa serverless, ang unang pagsagot at pag-queue ng trabaho ang pumipigil sa cold start na lumikha ng duplicate.

Paano nagpapadala?

Isang fetch sa messages endpoint ng Cloud API para sa phone number id, gamit ang token bilang bearer header.

Walang partikular dito sa amin, kaya eksaktong tumutugma ang request sa sariling documentation ng Meta at walang wrapper na kailangang pag-aralan o pag-ugatan ng dependency. Nasa dashboard ang dalawang value, at ibinabalik ng get_api_credentials ang mga ito sa MCP connector kapag assistant ang gumagawa ng wiring.

Nakadepende sa timing ang body. Sa loob ng 24 oras mula sa huling inbound message ng customer, magpadala ng text object. Sa labas nito, magpadala ng template object na may approved template name at language. Ang code na text lang ang ipinapadala ay pumapasa sa lahat ng test, pero bumibigay sa unang mensaheng dumating nang magdamag.

Ano ang naiiba sa serverless?

Dalawang bagay, at kapwa tungkol sa pagwawakas ng function bago matapos ang trabaho.

Hindi gumagana ang pagbabalik ng 200 at pagpapatuloy ng pagproseso kapag nag-freeze ang function sa sandaling sumagot ito. Gamitin ang anumang alok ng inyong platform para manatiling buhay ang trabaho pagkatapos ng response, o ilagay ang payload sa queue at ipa-handle ito sa hiwalay na function. Kailangan lang ng Meta ng mabilis na acknowledgement; hindi nito kailangang tapos na ang trabaho.

Mas nagiging mabagal din ang response dahil sa cold starts, kaya dumarami ang retries at duplicates. Hindi opsyonal ang pag-deduplicate gamit ang wamid message id sa ganitong setup. Ito ang nagpapanatili rito na reliable.

Mga karaniwang pagkakamali

  • Pagbabalik ng challenge bilang JSON sa halip na raw body.
  • Paggawa muna ng trabaho bago magbalik ng 200. Sa serverless, maaaring mag-freeze ang function sa sandaling sumagot ito.
  • Paglaktaw sa deduplication. Sadyang nagre-retry ang Meta, kaya normal ang duplicates at hindi ito edge case.
Ginagawa ito gamit ang EasyCoexistence

Ikonekta ang numero sa easycoexistence.com, itakda ang webhook destination sa inyong route, at kunin ang phone number id at token mula 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

Kailangan ba ng library?

Hindi. Sapat na ang isang route at fetch, at eksaktong tumutugma ang call sa documentation ng Meta.

Gumagana ba ito sa Vercel o Lambda?

Oo, pero may karaniwang serverless caveat: mag-acknowledge muna, pagkatapos ay magproseso sa queue o background mechanism sa halip na inline.

Paano ibe-verify na mula sa Meta ang request?

I-check ang signature header laban sa app secret ninyo. Makabubuting gawin ito sa sandaling maging public ang endpoint.

Maaari ba akong gumamit ng TypeScript?

Oo. Walang kailangang i-type laban sa amin dahil ang payload ay mula sa Meta at documented ng Meta.

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 Trial

Na-verify noong

Magpadala ng WhatsApp mula sa Node.js