2017-08-09 3 views
0

Wir entwickeln derzeit unseren ersten Chatbot für die Facebook Messenger Plattform. Ich begann mit dem Schnellstart-Beispiel hier: https://developers.facebook.com/docs/messenger-platform/guides/quick-startFacebook Chatbot Webhook - Warum sollte ich die Get-Anfrage implementieren?

Alles funktioniert gut, der Bot ruft mein Backend an, ich kann antworten. Alles gut.

Aber die folgende GET-Hook nie genannt:

app.get('/hook/', (req, res) => { 
    console.log('GET REQUEST CALLED'); 
    if (req.query['hub.verify_token'] === FB_VERIFY_TOKEN) { 
     res.send(req.query['hub.challenge']); 
    } else { 
     res.send('Error, wrong validation token'); 
    } 
}); 

Der Quick-Start und die vollen Führer sagen Sie mir, dass ich, dass der Frieden von Code benötigen, aber keiner von ihnen sagen Sie mir, warum .. .

Meine Frage ist:

  • Wann soll dieser Webhook genannt werden?
  • Warum kommt der Bot Arbeit ohne diesen Haken?
  • Sollte es meinen Backend nicht irgendwie überprüfen? Und warum ist das nötig?

Ich glaube, ich völlig hier etwas verpasst:/

Edit: Ist das nur benötigt, wenn ich programmatisch auf die Seite abonnieren? Derzeit habe ich über das Dashboard ein Abonnement für die Seite hinzugefügt. von Entwickler-Panel

Antwort

1

Wenn Sie Ihre Webhook URL-Setup. Facebook sendet automatisch eine GET-Anfrage an diesen Endpunkt und erwartet, dass Sie das Verifizierungstoken validieren.

Dieser Endpunkt ist eine Art eine Überprüfung Endpunkt für Facebook. Es erkennt an, dass Facebook Chat-Informationen nicht an falsche Endpunkte sendet, die zu Datenschutzmissbrauch führen können. Außerdem wird überprüft, ob Ihr Endpunkt bereit ist, Facebook-Eingabedaten zu verarbeiten.

+0

aha, so die Erklärung, warum meine Webhook arbeitet, ist, dass ich die Probe hatte (mit dem get Haken) laufen, während ich die Webhook im Dashboard hinzugefügt. Nach diesem ersten Anruf ruft Facebook diesen Endpunkt nicht mehr auf (wie es bereits bestätigt wurde ...). Deshalb konnte ich den Endpunkt entfernen, ohne die Funktionalität zu verlieren. Richtig? – Stefan

+1

Eigentlich empfehle ich nicht, diesen Endpunkt zu entfernen. Ich bin mir nicht sicher (nicht geschriebene Entwickler-Dokumente), aber es ist möglich, dass Facebook diesen Endpunkt erneut überprüft. – mustafaturan

Verwandte Themen