Meta Tech Provider

Verifica di un endpoint webhook WhatsApp

Prima di consegnare qualsiasi evento, Meta chiama il tuo endpoint con una GET contenente hub.mode, hub.verify_token e hub.challenge. Il tuo endpoint deve confrontare il token e restituire la challenge come corpo grezzo. Qualsiasi altra cosa impedisce l'avvio della consegna.

hub.challenge

Il valore da restituire come corpo della risposta.

subscribe

Il valore di hub.mode in una richiesta di verifica.

HTTPS

L'unico schema verificato da Meta. HTTP viene rifiutato prima della chiamata.

Cosa invia esattamente Meta?

Una richiesta GET al tuo URL con tre parametri di query. hub.mode è impostato su subscribe. hub.verify_token è il token che hai configurato quando hai impostato la destinazione. hub.challenge è un valore generato da Meta per questo tentativo.

Il tuo endpoint dovrebbe confrontare hub.verify_token con il token scelto e, se corrisponde, rispondere con 200 e hub.challenge come intero corpo della risposta. Non racchiuderlo in JSON, non aggiungere virgolette intorno e non inserire una nuova riga finale che alcuni framework aggiungono per impostazione predefinita.

Se il token non corrisponde, rispondi con 403. Questo è l'intero protocollo, volutamente essenziale.

Perché una risposta errata fallisce in silenzio?

Perché il fallimento della verifica non è un errore del tuo sistema, ma un'assenza nel sistema di Meta.

Quando la challenge non viene restituita correttamente, Meta semplicemente non inizia a consegnare dati a quella destinazione. Il tuo server restituisce 200 alla verifica, i log mostrano che è arrivata una richiesta e nessuna dashboard segnala un problema. L'unico sintomo è che i messaggi non arrivano mai, cosa che la maggior parte delle persone diagnostica come un problema di Coexistence anziché come un problema di handshake.

Per questo vale la pena validare tutto prima della chiamata. Verifichiamo che l'URL sia HTTPS e che sia stato fornito un token di verifica prima di effettuare la richiesta Graph, così una destinazione non valida fallisce subito invece di sembrare connessa.

Cos'altro può bloccare la verifica?

Tre cose che non hanno nulla a che vedere con il codice.

L'autenticazione davanti all'endpoint. Un gateway, un livello di autenticazione di base o un elenco di IP consentiti rifiuteranno la richiesta di Meta, che non ha credenziali da presentare. La route di verifica deve essere raggiungibile senza autenticazione.

Un reindirizzamento. Meta chiama l'URL che hai fornito e un 301 verso un host canonico non viene seguito in modo da completare l'handshake. Fornisci l'URL finale.

E un framework che serializza la risposta. Restituire una stringa da un gestore che racchiude tutto in JSON produce un corpo con virgolette intorno alla challenge, che quindi non corrisponde.

Errori comuni

  • Restituire JSON. Il corpo deve contenere la challenge grezza, senza nient'altro intorno.
  • Mettere l'endpoint dietro un'autenticazione. Meta non ha credenziali e la richiesta verrà rifiutata.
  • Fornire a Meta un URL che reindirizza. Usa quello finale.
Farlo con EasyCoexistence

EasyCoexistence verifica che una destinazione usi HTTPS e abbia un token di verifica prima di chiamare Meta, e registra un handshake fallito nella cronologia della connessione invece di scartare la destinazione.

Domande frequenti

Quale token devo usare?

Qualsiasi stringa tu scelga. Serve affinché il tuo endpoint distingua la richiesta di Meta da quella di chiunque altro venga a conoscenza dell'URL.

Con quale frequenza avviene la verifica?

Durante la configurazione e ogni volta che la destinazione viene impostata. Un endpoint funzionante non viene verificato di nuovo a ogni evento.

Posso eseguire il test da solo?

Sì. Chiama il tuo endpoint con i tre parametri e verifica che il corpo restituito corrisponda esattamente al valore della challenge.

Cosa succede se il mio server era inattivo durante la verifica?

L'handshake fallisce e la destinazione non si attiva. Salvarla di nuovo esegue nuovamente la verifica.

Continua a leggere

Pronto per iniziare?

Configura WhatsApp Coexistence in pochi minuti, non in mesi. L'app continua a funzionare sul telefono.

Inizia la prova gratuita

Verificato il

Verifica del webhook WhatsApp