Meta Tech Provider

Το webhook messages

Το messages είναι το πεδίο που μεταφέρει ό,τι στέλνει ο πελάτης στον αριθμό σας: κείμενο, media, απαντήσεις, αντιδράσεις και interactive responses. Σε routed αριθμό Coexistence πηγαίνει από τη Meta απευθείας στο endpoint σας και ποτέ μέσω παρόχου.

messages

Το webhook field που μεταφέρει εισερχόμενα μηνύματα πελατών.

wamid

Το πρόθεμα στο message id που χρησιμοποιείται για deduplication των retries.

200

Το status που περιμένει γρήγορα η Meta, πριν από οποιαδήποτε επεξεργασία.

Τι περιέχει το payload;

Μία ή περισσότερες messages σε μία παράδοση, καθεμία με τον αποστολέα, ένα id και έναν τύπο. Ο τύπος καθορίζει ποια άλλα keys υπάρχουν.

  • Τον αριθμό τηλεφώνου του αποστολέα και το phone number id του αριθμού στον οποίο έγραψε.
  • Ένα wamid message id, πάνω στο οποίο βασίζεται το deduplication.
  • Ένα unix timestamp.
  • Έναν type: text, image, audio, video, document, sticker, location, contacts, reaction, button ή interactive.
  • Για media types, ένα media id για ανάκτηση, όχι τα ίδια τα bytes.

Γιατί δεν φτάνει σε εμάς σε routed αριθμό;

Επειδή το override μετακινεί αυτό το field, μαζί με το smb_message_echoes, στον προορισμό που ορίζετε.

Η Meta επιτρέπει σε ένα app να αλλάξει πού ένας WhatsApp Business Account παραδίδει τα webhooks του. Ορίζουμε το override στο URL σας, απομακρύνοντας πλήρως τη διαδρομή του message από την υποδομή μας. Δεν υπάρχει αντίγραφο, queue ή retention από την πλευρά μας, επειδή η παράδοση δεν φτάνει ποτέ εκεί.

Όταν δεν έχει οριστεί προορισμός, αυτά τα events επιστρέφουν στο προεπιλεγμένο callback μας, όπου ο handler τα απορρίπτει χωρίς persistence. Αυτή είναι η διαφορά ανάμεσα σε έναν ισχυρισμό για storage και σε ένα code path: δεν υπάρχει σημείο όπου μπορεί να πάει το περιεχόμενο της συνομιλίας.

Πώς γίνεται σωστά το acknowledge;

Επιστρέψτε 200 πριν κάνετε τη δουλειά, όχι μετά.

Η Meta θεωρεί το αργό response σφάλμα και κάνει retry, οπότε ένας handler που επεξεργάζεται inline θα δει το ίδιο message περισσότερες από μία φορές. Απαντήστε αμέσως, βάλτε το payload σε queue ή background task και αφήστε την εργασία να γίνει εκτός του request.

Σε serverless αυτό δεν είναι προαιρετικό. Μια function που επιστρέφει και συνεχίζει να εργάζεται μπορεί να παγώσει μόλις απαντήσει, επομένως το acknowledge και η επεξεργασία πρέπει να είναι πραγματικά ξεχωριστά.

Πώς γίνεται το deduplication;

Πάντα με βάση το wamid, επειδή τα retries είναι φυσιολογικά και όχι εξαίρεση.

Το ίδιο message μπορεί να φτάσει δύο φορές για λόγους που δεν σχετίζονται με bug στη δική σας πλευρά: αργό response, network timeout ή deploy στη μέση της παράδοσης. Αποθηκεύστε τα ids που έχουν εμφανιστεί και παραλείψτε τις επαναλήψεις. Είναι λίγες γραμμές και η διαφορά ανάμεσα στο να απαντηθεί ένας πελάτης μία ή δύο φορές.

Σε αριθμό Coexistence αυτό έχει μεγαλύτερη σημασία, επειδή το smb_message_echoes φτάνει από την ίδια διαδρομή και ένας handler που θεωρεί κάθε event νέο θα απαντήσει πάνω από άνθρωπο που έχει ήδη απαντήσει.

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

  • Επεξεργασία πριν από την επιστροφή του 200. Η Meta κάνει retry στο αργό response και χειρίζεστε το message δύο φορές.
  • Παράλειψη του deduplication. Τα retries είναι σχεδιασμένα έτσι, όχι edge case.
  • Αναμονή για media bytes στο payload. Μεταφέρει ένα media id για ανάκτηση.
Κάντε το με EasyCoexistence

Το EasyCoexistence δρομολογεί αυτό το field απευθείας από τη Meta στο endpoint σας και κρατά μόνο τα operational events του monitoring, ώστε το περιεχόμενο της συνομιλίας να μην έχει κανένα μονοπάτι προς το storage μας.

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

Βλέπει το EasyCoexistence τα messages των πελατών μου;

Όχι. Το override παραδίδει αυτό το field στο endpoint σας. Ό,τι φτάσει στο fallback callback μας απορρίπτεται χωρίς persistence.

Μπορούν να φτάσουν πολλά messages σε ένα request;

Ναι. Μία παράδοση μπορεί να περιέχει περισσότερα από ένα, οπότε οι handlers πρέπει να κάνουν iterate και όχι να διαβάζουν μόνο το πρώτο.

Πώς παίρνω τα media;

Το payload περιέχει ένα media id. Χρησιμοποιήστε το για να κάνετε fetch στο URL με το access token του αριθμού και μετά download.

Τι είναι το smb_message_echoes;

Το companion field που μεταφέρει όσα στέλνει η ομάδα σας από το WhatsApp Business app. Υπάρχει μόνο σε αριθμούς Coexistence.

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

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

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

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

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

webhook messages