it-swarm.com.de

Wie kann ich Messenger Bots offline testen? Lokale Webhooks

Ich fange mit der Messenger Platform API an. Ich möchte einfachen Messenger Chatbot machen. Hier ist ein Tutorial, dem ich folge.

Wie Sie sehen, muss ich zunächst einen Webhook einrichten (Schritt 2). Im Grunde also: Webserver, der eine REST API bereitstellt und Daten zurücksendet. Das Problem ist: Facebook verlangt von mir die Angabe einer echten, vorhandenen App-URL, die derzeit im Internet funktioniert. Muss ich meinen Code also jedes Mal auf den Server hochladen, wenn ich etwas ändere? Kann ich es lokal testen (auf meinem localhost)? Wie kann ich das Verhalten meines Bots testen?

11
Piotrek

Es gibt einige Dienste, die Sie verwenden können, um Ihren Webserver, der auf localhost ausgeführt wird, der Öffentlichkeit zugänglich zu machen. Zwei Optionen sind localtunnel und ngrok

Ein Beispiel (aus dem Schnellstart von localtunnel), wie Sie dies tun könnten, wenn Ihr Webserver unter http: // localhost: 8000/ ausgeführt wird, würde folgendermaßen aussehen:

Installieren Sie localtunnel von npm:

npm install -g localtunnel

Fordern Sie einen Tunnel zu Ihrem lokalen Server an:

lt --port 8000

Dadurch wird ein Link in der Form https://foo.localtunnel.me generiert, mit der Sie über das Web auf Ihren localhost zugreifen können. Eine schöne Funktion ist, dass Sie automatisch https erhalten, sodass Facebook keine Fehlermeldung mit dem Problem "SSL-Zertifikat" ausgibt. Localtunnel oder ngrok sind auch Nizza für die Arbeit mit anderen vor Ort.

Beachten Sie, dass die URL von localtunnel nur solange gültig ist, wie die Verbindung besteht. Sie müssen also die URL aktualisieren, die Facebook hat, wenn die Verbindung beendet wird.

28
mguida

Ich habe eine Bibliothek erstellt, die versucht, genau dieses Problem zu lösen! Mit fb-local-chat-bot können Sie Ihren Bot einfach offline testen. Die Bibliothek macht das Testen auch viel einfacher. Wenn Sie interessiert sind, überprüfen Sie es auf jeden Fall

https://github.com/spchuang/fb-local-chat-bot

Demo:

16
spchuang

sie können ngrok verwenden, um den Messenger-Bot in localhost zu testen. Sie können es herunterladen: https://ngrok.com/download

bei der Ausführung von ngrok wird ein sicherer Link generiert, der als Endpunkt im Webhook verwendet werden kann.

Sie können auch den detaillierten Status jeder Anfrage und die Antwort von ngrok durch überprüfen

http: // localhost: 4040/inspect/http

Später, wenn Sie fertig sind, können Sie Ihren Code zum Sichern des Servers bereitstellen.

Weitere Informationen zum Erstellen eines grundlegenden Chat-Bot finden Sie unter dem folgenden Link:

Wie man einen einfachen Chat-Bot auf Facebook Messenger erstellt

3
Sravan

Sie können Ihre Backend-Dienste kostenlos auf Heroku bereitstellen. Es bietet öffentliche DNS mit RSA.

1
user3671657

Wenn Sie ngrok aus irgendeinem Grund nicht verwenden können (z. B. Routing von Webhook zu mehreren Dev-Maschinen). Bitte probieren Sie diesen Emulator aus, den ich erstellt habe, um Webhooks lokal zu entwickeln/zu debuggen. Dies bietet die Emulation von Sende-API und eines Messenger-UI

Ich habe einen Emulator für Sende-API und Messenger erstellt, den ich zum lokalen Debuggen von Web-Hooks verwende

https://github.com/SonOfSardaar/facebook-send-api-emulator

Ich bin auch auf dieses gestoßen (ich habe es noch nicht ausprobiert, sieht aber gut aus)

https://docs.Microsoft.com/de-de/bot-framework/debug-bots-emulator

0
Gurpreet