Meta Tech Provider

Επαλήθευση endpoint webhook του WhatsApp

Πριν παραδώσει οποιοδήποτε συμβάν, η Meta καλεί το endpoint σας με ένα GET που περιλαμβάνει τα hub.mode, hub.verify_token και hub.challenge. Το endpoint σας πρέπει να συγκρίνει το token και να επιστρέφει το challenge ως ακατέργαστο σώμα. Οτιδήποτε άλλο και η παράδοση δεν ξεκινά ποτέ.

hub.challenge

Η τιμή που πρέπει να επιστραφεί στο σώμα της απόκρισης.

subscribe

Η τιμή του hub.mode σε ένα αίτημα επαλήθευσης.

HTTPS

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

Τι ακριβώς στέλνει η Meta;

Ένα αίτημα GET στη διεύθυνσή σας με τρεις παραμέτρους ερωτήματος. Το hub.mode έχει την τιμή subscribe. Το hub.verify_token είναι το token που ρυθμίσατε όταν ορίσατε τον προορισμό. Το hub.challenge είναι μια τιμή που δημιουργεί η Meta για αυτή την προσπάθεια.

Το endpoint σας πρέπει να συγκρίνει το hub.verify_token με το token που επιλέξατε και, αν ταιριάζει, να απαντά με 200 και το hub.challenge ως ολόκληρο το σώμα της απόκρισης. Όχι μέσα σε JSON, όχι με εισαγωγικά γύρω του και όχι με τελικό χαρακτήρα νέας γραμμής που προσθέτουν ορισμένα frameworks από προεπιλογή.

Αν το token δεν ταιριάζει, απαντήστε με 403. Αυτό είναι όλο το πρωτόκολλο και είναι σκόπιμα μικρό.

Γιατί η λάθος απάντηση αποτυγχάνει σιωπηλά;

Επειδή η αποτυχία της επαλήθευσης δεν είναι σφάλμα στο σύστημά σας, αλλά απουσία από το σύστημα της Meta.

Όταν το challenge δεν επιστραφεί σωστά, η Meta απλώς δεν ξεκινά την παράδοση σε αυτόν τον προορισμό. Ο server σας επιστρέφει 200 στην επαλήθευση, τα logs δείχνουν ότι έφτασε ένα αίτημα και κανένα dashboard δεν αναφέρει πρόβλημα. Το μόνο σύμπτωμα είναι ότι τα μηνύματα δεν έρχονται ποτέ, κάτι που οι περισσότεροι διαγιγνώσκουν ως πρόβλημα Coexistence και όχι ως πρόβλημα χειραψίας.

Γι’ αυτό αξίζει να γίνεται επικύρωση πριν από την κλήση. Ελέγχουμε ότι το URL είναι HTTPS και ότι δόθηκε verify token πριν κάνουμε το αίτημα Graph, ώστε ένας μη έγκυρος προορισμός να αποτυγχάνει αμέσως αντί να φαίνεται συνδεδεμένος.

Τι άλλο μπορεί να εμποδίσει την επαλήθευση;

Τρία πράγματα που δεν έχουν σχέση με τον κώδικα.

Έλεγχος ταυτότητας μπροστά από το endpoint. Ένα gateway, ένα επίπεδο basic auth ή μια λίστα επιτρεπόμενων IP θα απορρίψει το αίτημα της Meta, και η Meta δεν έχει διαπιστευτήρια για να παρουσιάσει. Η διαδρομή επαλήθευσης πρέπει να είναι προσβάσιμη χωρίς αυτά.

Ανακατεύθυνση. Η Meta καλεί το URL που της δώσατε και μια ανακατεύθυνση 301 σε κανονικό host δεν ακολουθείται με τρόπο που ολοκληρώνει τη χειραψία. Δώστε της το τελικό URL.

Και ένα framework που σειριοποιεί την απόκριση. Η επιστροφή μιας συμβολοσειράς από έναν handler που τυλίγει τα πάντα σε JSON δημιουργεί σώμα με εισαγωγικά γύρω από το challenge, οπότε δεν ταιριάζει.

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

  • Επιστροφή JSON. Το σώμα πρέπει να είναι η ακατέργαστη τιμή του challenge, χωρίς τίποτα γύρω της.
  • Τοποθέτηση του endpoint πίσω από έλεγχο ταυτότητας. Η Meta δεν έχει διαπιστευτήρια και θα απορριφθεί.
  • Παροχή URL που ανακατευθύνει στη Meta. Χρησιμοποιήστε το τελικό.
Κάντε το με EasyCoexistence

Το EasyCoexistence επικυρώνει ότι ένας προορισμός είναι HTTPS και διαθέτει verify token πριν καλέσει τη Meta, ενώ καταγράφει μια αποτυχημένη χειραψία στη χρονογραμμή της σύνδεσης αντί να απορρίπτει τον προορισμό.

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

Τι token πρέπει να χρησιμοποιήσω;

Οποιαδήποτε συμβολοσειρά επιλέξετε. Υπάρχει ώστε το endpoint σας να ξεχωρίζει το αίτημα της Meta από οποιοδήποτε άλλο που προέρχεται από κάποιον ο οποίος έμαθε το URL.

Πόσο συχνά γίνεται η επαλήθευση;

Κατά τη ρύθμιση και ξανά κάθε φορά που ορίζεται ο προορισμός. Ένα λειτουργικό endpoint δεν επαληθεύεται ξανά σε κάθε συμβάν.

Μπορώ να το δοκιμάσω μόνος μου;

Ναι. Καλέστε το δικό σας endpoint με τις τρεις παραμέτρους και ελέγξτε ότι το σώμα επιστρέφει ακριβώς την τιμή του challenge.

Τι γίνεται αν ο server μου ήταν εκτός λειτουργίας κατά την επαλήθευση;

Η χειραψία αποτυγχάνει και ο προορισμός δεν ενεργοποιείται. Αν το αποθηκεύσετε ξανά, η διαδικασία εκτελείται ξανά.

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

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

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

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

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

Επαλήθευση WhatsApp webhook