web-dev-qa-db-de.com

Facebook Messenger-Plattform. Einrichten des Webhooks mit SSL

Schließlich startete Facebook API für ihren Messenger API für ihren Messenger . Auf diese Weise können wir Chat-Bots erstellen.

In Getting Started Guide , muss ich Webhook einrichten. Dies erfordert einen Webserver, der sich in einer bestimmten Domäne befindet und eine SSL-Verbindung verwenden muss.

Ich habe VPS, die statische IP hat. Ich habe ein selbstsigniertes Zertifikat erstellt und einen einfachen Node JS-Webserver erstellt, der dieses Zertifikat verwendet. Zunächst muss ich das Token für den Webhook überprüfen:

app.get('/webhook/', function (req, res) {
  if (req.query['hub.verify_token'] === '<validation_token>') {
      res.send(req.query['hub.challenge']);
  }
  res.send('Error, wrong validation token');
})

Dann habe ich diese Serveranwendung gestartet und in meinem Facebook-App-Dashboard klicke ich auf Überprüfen und Speichern .

Es wirft mir diese Fehlermeldung:

 Screenshot

Dies bedeutet, dass Facebook mein selbstsigniertes Zertifikat nicht akzeptieren möchte .

Dies wirft mehrere Fragen auf:

Muss ich SSL-Zertifikate nur von Zertifizierungsstellen bereitgestellt verwenden, um mit Facebook Messenger zu arbeiten?

Das Arbeiten mit Facebook Messenger ist weitaus schwieriger als mit Telegramm.

19
Mr.D

Sie können cloudflare verwenden, um https zu erhalten, anstatt sich selbst zu signieren. Oder verwenden Sie https://letsencrypt.org

6
saturngod

Für den Test können Sie localtunnel verwenden. https://localtunnel.me/

9
ndrx42

Ich habe my bot für Heroku bereitgestellt, und sie bieten ohne weiteres HTTPS-Verbindungen an. Für die lokale Entwicklung verwende ich ngrok, das auch die HTTPS-Weiterleitung unterstützt.

 Ngrok

Für Neulinge habe ich dieses kleine Tutorial für diejenigen geschrieben, die mit der Facebook Messenger (Bot) API beginnen möchten, von der ersten Codezeile bis zur Heroku-Bereitstellung. Ich fand heraus, dass Heroku perfekt für ein solches Projekt war, da ich Python flask + gunicorn verwendet habe. Alles, was ich für die Bereitstellung benötigte, dauerte wirklich 5 Minuten, und Heroku kümmerte sich um den Rest.

7
Hung Tran

Auszug aus hier :

Neue Webhook-Abonnements müssen ab Version 2.5 eine sichere HTTPS-Callback-URL verwenden. Mit der nächsten Version der Graph-API werden wir keine Updates mehr an Nicht-HTTPS-Callback-URLs senden.
Wenn Sie weitere Informationen zum Einrichten von HTTPS für Ihre Rückruf-URL benötigen, lesen Sie das Handbuch Erste Schritte von Let's Encrypt und die Anweisungen zur Installation des SSL-Zertifikats von Digicert.

Und von hier , und wie @saturngod sagte:

Selbstsignierte Zertifikate werden von Facebook nicht akzeptiert. Letsencrypt Zertifikate funktionieren einwandfrei.

3
Anfuca

Ich hatte den gleichen Fehler bei der Verwendung von Comodo SSL auf Apache. In meinem Fall fehlte mir die SSLCertificateChainFile und ich musste nur die Bundle-Datei und den Pfad zur Datei in meine virtuelle Host-Konfiguration hochladen und Apache neu laden. Hier finden Sie einen Link zum Installieren von comodo SSL, das Sie unter ssls.com https://helpdesk.ssls.com/hc/en-us/articles/203482651-wie-ab-installieren-a-SSL-Zertifikat-auf-Apache erwerben .

0
user3612888

Zum Überprüfen des Web-Hooks verwenden Sie: -

$_REQUEST["hub_token"] and $_REQUEST["hub_challenge"];

Überprüfen Sie zunächst das Token mit Ihrem Seitentoken und drucken Sie dann: -

echo $_REQUEST["hub_challenge"];
exit;
0
Prashant