Meta Tech Provider

Στείλτε και λάβετε WhatsApp από Node.js

Η λήψη γίνεται από route που απαντά στο GET επαλήθευσης της Meta και δέχεται POST. Η αποστολή είναι κλήση fetch στο Cloud API με το `phone number id` και το token του αριθμού. Δεν υπάρχει SDK από εμάς και δεν χρειάζεται εγκατάσταση.

2 handlers

Ένα GET για την επαλήθευση της Meta και ένα POST για τα συμβάντα.

24 hours

Το χρονικό παράθυρο μετά από μήνυμα πελάτη μέσα στο οποίο μπορείτε να στείλετε ελεύθερο κείμενο.

131047

Το σφάλμα που επιστρέφεται όταν στέλνετε ελεύθερο κείμενο εκτός αυτού του παραθύρου.

Πώς λαμβάνετε μηνύματα σε Node;

Ένα route με δύο μεθόδους, σε Express, Fastify, Next route handler ή απλό server.

Το GET απαντά στην επαλήθευση της Meta. Διαβάστε τα hub.mode, hub.verify_token και hub.challenge από το query, συγκρίνετε το token με το δικό σας και επιστρέψτε το challenge ως απλό κείμενο. Η επιστροφή του ως JSON είναι το συνηθισμένο λάθος και δημιουργεί ένα endpoint που δεν λαμβάνει ποτέ τίποτα, ενώ φαίνεται σωστό.

Το POST λαμβάνει τα συμβάντα. Απαντήστε αμέσως με 200 και επεξεργαστείτε τα αργότερα. Η Meta επαναλαμβάνει οτιδήποτε καθυστερεί, και ένας handler που ολοκληρώνει την εργασία πριν απαντήσει θα δει το ίδιο μήνυμα περισσότερες από μία φορές. Ειδικά σε serverless, η άμεση απάντηση και η τοποθέτηση της εργασίας σε queue εμποδίζουν το cold start να δημιουργήσει διπλότυπο.

Πώς στέλνετε;

Ένα fetch στο messages endpoint του Cloud API για το `phone number id`, με το token σε bearer header.

Τίποτα δεν είναι ειδικό για εμάς, επομένως το αίτημα ταιριάζει ακριβώς με την τεκμηρίωση της Meta και δεν υπάρχει wrapper που πρέπει να μάθετε ή να σας δεσμεύει. Και οι δύο τιμές βρίσκονται στο dashboard, ενώ το get_api_credentials τις επιστρέφει μέσω του MCP connector όταν ένας assistant κάνει τη σύνδεση.

Το body εξαρτάται από τον χρόνο. Μέσα σε 24 ώρες από το τελευταίο εισερχόμενο μήνυμα του πελάτη, στείλτε αντικείμενο `text`. Εκτός αυτού του διαστήματος, στείλτε αντικείμενο `template` με εγκεκριμένο όνομα και γλώσσα template. Κώδικας που στέλνει μόνο text περνά κάθε δοκιμή και αποτυγχάνει στο πρώτο μήνυμα που φτάνει μέσα στη νύχτα.

Τι διαφέρει σε serverless;

Δύο πράγματα, και τα δύο αφορούν το function που τερματίζει πριν ολοκληρωθεί η εργασία.

Η επιστροφή 200 και η συνέχιση της επεξεργασίας δεν επιβιώνουν σε function που παγώνει τη στιγμή της απόκρισης. Χρησιμοποιήστε ό,τι προσφέρει η πλατφόρμα σας για να παραμείνει ενεργή η εργασία μετά την απόκριση ή βάλτε το payload σε queue και αφήστε ξεχωριστό function να το χειριστεί. Η Meta χρειάζεται γρήγορα την επιβεβαίωση, όχι την ολοκλήρωση της εργασίας.

Τα cold starts κάνουν επίσης τις αργές αποκρίσεις πιθανότερες, κάτι που σημαίνει περισσότερες επαναλήψεις και περισσότερα διπλότυπα. Η αποδιπλοποίηση με βάση το wamid message id δεν είναι προαιρετική σε αυτή τη δομή. Είναι αυτό που την κάνει αξιόπιστη.

Συνηθισμένα λάθη

  • Επιστροφή του challenge ως JSON αντί για το ακατέργαστο body.
  • Εκτέλεση της εργασίας πριν από την απάντηση 200. Σε serverless, το function μπορεί να παγώσει τη στιγμή που απαντά.
  • Παράλειψη της αποδιπλοποίησης. Η Meta επαναλαμβάνει τα αιτήματα σκόπιμα και τα διπλότυπα είναι φυσιολογικά, όχι σπάνια περίπτωση.
Κάντε το με EasyCoexistence

Συνδέστε τον αριθμό στο easycoexistence.com, ορίστε τον προορισμό του webhook στο route σας και διαβάστε το `phone number id` και το token από το dashboard. Από US$ 9 ανά αριθμό τον μήνα, έως US$ 2 σε μεγάλο όγκο, με τις πρώτες 7 ημέρες δωρεάν.

Συχνές ερωτήσεις

Χρειάζομαι βιβλιοθήκη;

Όχι. Αρκούν ένα route και ένα fetch, και η κλήση ταιριάζει ακριβώς με την τεκμηρίωση της Meta.

Λειτουργεί σε Vercel ή Lambda;

Ναι, με τη γνωστή προϋπόθεση του serverless: επιβεβαιώστε πρώτα και μετά επεξεργαστείτε μέσω queue ή background μηχανισμού, όχι inline.

Πώς επαληθεύω ότι το αίτημα προήλθε από τη Meta;

Ελέγξτε το signature header έναντι του app secret σας. Αξίζει να το κάνετε μόλις το endpoint γίνει δημόσιο.

Μπορώ να χρησιμοποιήσω TypeScript;

Ναι. Δεν υπάρχει κάτι που πρέπει να τυποποιήσετε από εμάς, καθώς το payload ανήκει στη Meta και τεκμηριώνεται από τη Meta.

Συνεχίστε την ανάγνωση

Έτοιμοι να ξεκινήσετε;

Ρυθμίστε το WhatsApp Coexistence σε λίγα λεπτά, όχι σε μήνες. Η εφαρμογή συνεχίζει να λειτουργεί στο τηλέφωνο.

Ξεκινήστε δωρεάν δοκιμή

Επαληθεύτηκε στις

Στείλτε WhatsApp από Node.js