Heim >Web-Frontend >js-Tutorial >Erstellen eines Facebook -Chat -Bots mit Node und Heroku
Erstellen Sie einen Facebook-Chatbot mit Node.js und Heroku, von denen Joan Yin und Camilo Reyes überprüft wurden. Vielen Dank an alle SitePoint -Peer -Rezensenten, die SidePoint -Inhalte für den Besten erhalten haben!
Auf der F8 -Konferenz des letzten Jahres startete Facebook die Messenger -Plattform und ermöglichte Entwickler, Bots zu erstellen, die mit Personen auf Messenger- oder Facebook -Seiten sprechen können. Mit Robotern können Anwendungsbesitzer besser mit Benutzern interagieren, indem sie personalisierte und interaktive Kommunikation bereitstellen, die den Massen erweitert werden können. Seit seiner Start haben Unternehmens- und Anwendungsbesitzer großes Interesse an Chatbots gezeigt. Drei Monate nach der Ankündigung wird geschätzt, dass auf der Plattform 11.000 Roboter aufgebaut wurden.
Chatbots profitieren nicht nur Unternehmen und Anwendungsbesitzer. Benutzer dieser Roboter können zahlreiche Dienste genießen, wie z. B.
Das aktuelle Interesse und die Attraktivität von Chatbots sind offensichtlich.
In diesem Artikel werden wir untersuchen, wie Sie einen Facebook -Chatbot erstellen, der im Namen von Facebook -Seiten mit Benutzern über Messenger interagieren kann. Wir werden einen Roboter erstellen, mit dem Benutzer verschiedene Details zu den von ihnen angegebenen Filmen liefern können.
KI -KI kann sicherlich helfen, insbesondere wenn es um den Bau komplexer Roboter geht, aber es ist nicht notwendig. Sie können sicherlich einen Roboter bauen, ohne maschinelles Lernen zu verstehen.
Sie können zwei Arten von Robotern erstellen. Einer basiert auf einer Reihe von Regeln, und der andere verwendet maschinelles Lernen. Ersteres ist in Bezug auf die Wechselwirkungen begrenzt, die es bereitstellen kann. Es kann nur auf bestimmte Befehle reagieren. Dies ist die Art von Roboter, die wir bauen werden.
Mit maschinellem Lernrobotern können Sie eine bessere Benutzerinteraktion erhalten. Benutzer können mit dem Roboter natürlicher interagieren wie in der menschlichen Interaktion, anstatt nur Befehle zu verwenden. Roboter werden auch schlauer, als sie aus Gesprächen mit Menschen lernt. Wir werden die Konstruktion dieser Art von Roboter in zukünftigen Artikeln retten. Es ist jedoch kein Wissen für maschinelles Lernen erforderlich. Glücklicherweise gibt es Dienste wie Wit.ai und API.AI, die es Entwicklern ermöglichen, maschinelles Lernen (insbesondere natürliche Sprachverarbeitung - NLP) in ihre Anwendungen zu integrieren.
Sie können den Code für die abgeschlossene Demo -Anwendung von hier herunterladen.
Damit Ihr Chatbot mit Facebook -Nutzern kommunizieren kann, müssen wir einen Server einrichten, um Nachrichten zu empfangen, zu verarbeiten und zu senden. Der Server verwendet dafür die Facebook -Graph -API. Die Graph -API ist die Hauptmethode, um in die Facebook -Plattformdaten ein- und auszusteigen. Der Server muss über eine Endpoint -URL verfügen, auf die der Facebook -Server zugreifen kann. Die Bereitstellung einer Webanwendung auf dem lokalen Computer funktioniert daher nicht. Sie müssen sie online bringen. Beginnend mit Version 2.5 der Graph -API müssen neue Abonnements zum Dienst eine sichere HTTPS -Callback -URL verwenden. In diesem Tutorial stellen wir die Anwendung für Heroku bereit, da alle Standarddomänen von appname.herokuapp.com SSL aktiviert sind. Wir werden node.js verwenden, um Webanwendungen zu erstellen.
Stellen Sie zunächst sicher, dass der Knoten auf Ihrem Computer installiert ist. Sie können dies überprüfen, indem Sie Knoten -v in das Terminal eingeben. Bei der Installation wird die Versionsnummer ausgegeben. Installieren Sie dann die Heroku Command Line Interface (CLI). Wir werden es später verwenden, um die App nach Heroku zu bringen. Verwenden Sie Heroku -Verssion, um zu überprüfen, ob die CLI installiert ist.
Erstellen Sie das Projektverzeichnis und initialisieren Sie die Paket.json -Datei mit dem folgenden Befehl.
<code>$ mkdir spbot $ cd spbot $ npm init</code>
Befolgen Sie die Eingabeaufforderungen, um Ihre Projekteinstellungen festzulegen.
Öffnen Sie nach dem Generieren der Datei package.json sie und fügen Sie die Starteigenschaft zum Skriptobjekt hinzu. Auf diese Weise kann Heroku wissen, welchen Befehl ausführen soll, um die Anwendung zu starten. Während der Projekteinrichtung definiere ich App.js als Einstiegspunkt der Anwendung, daher verwende ich Node App.js als Wert des Starts. Ändern Sie diese Einstellung gemäß Ihren Projekteinstellungen.
<code>{ "name": "spbot", "version": "1.0.0", "description": "SPBot Server", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node app.js" }, "author": "Joyce Echessa", "license": "ISC" }</code>
Installieren Sie die folgenden Knotenpakete.
<code>$ npm install express request body-parser mongoose --save</code>
Erstellen Sie eine .Gitignore -Datei im Stammverzeichnis des Projekts und geben Sie den Ordner node_modules ein, um zu verhindern, dass sie übermittelt wird.
<code>node_modules</code>
Erstellen Sie im Stammverzeichnis des Projekts eine Datei mit dem Namen app.js (index.js, wenn der Standardname verwendet wird). Ändern Sie es wie folgt:
<code class="language-javascript">var express = require("express"); var request = require("request"); var bodyParser = require("body-parser"); var app = express(); app.use(bodyParser.urlencoded({extended: false})); app.use(bodyParser.json()); app.listen((process.env.PORT || 5000)); // 服务器索引页面 app.get("/", function (req, res) { res.send("已部署!"); }); // Facebook Webhook // 用于验证 app.get("/webhook", function (req, res) { if (req.query["hub.verify_token"] === "this_is_my_token") { console.log("已验证 webhook"); res.status(200).send(req.query["hub.challenge"]); } else { console.error("验证失败。令牌不匹配。"); res.sendStatus(403); } });</code>
Der erste Get -Handler wird für unsere eigenen Tests verwendet - um festzustellen, ob die Anwendung erfolgreich bereitgestellt wurde. Der zweite Get -Handler ist der Endpunkt, den Facebook verwendet, um die Anwendung zu validieren. Der Code sollte nach Verification_Token suchen und mit der in der Verifizierungsanforderung gesendeten Herausforderung antworten.
Sie können Ihr eigenes Token in den Code einfügen. Diese Art von Daten wird am besten in Umgebungsvariablen gespeichert, die wir sofort nach dem Erstellen des Projekts auf Heroku durchführen werden.
Damit die Facebook -Plattform eine Verbindung zu unserer Backend -Anwendung herstellen kann, müssen wir sie zunächst online bringen.
Erstellen Sie ein Git -Repository und senden Sie das Projekt mit dem folgenden Befehl:
<code>$ git init $ git add . $ git commit -m "Initial commit"</code>
Wenn Sie es noch nicht getan haben, melden Sie sich bitte für ein kostenloses Heroku -Konto an.
Melden Sie sich von Ihrem Terminal bei Heroku an und erstellen Sie eine Anwendung.
<code>$ heroku login $ heroku create $ git push heroku master $ heroku open</code>
Nach dem Ausführen des Befehls heroku open wird der Link zum Ausführen der Anwendung in Ihrem Standardbrowser geöffnet. Wenn alles gut läuft, sehen Sie eine Seite mit dem Text "Bereitet!".
Erstellen wir vor fortgeschrittener, erstellen wir eine Umgebungsvariable auf Heroku, um den Überprüfungs -Token der Anwendung zu speichern.
Öffnen Sie Ihr Heroku -Dashboard und wählen Sie die gerade bereitgestellte Anwendung aus. Gehen Sie zu den Einstellungen der Anwendung und klicken Sie auf die Schaltfläche Zeigen Sie die Konfigurationsvariablen . Geben Sie Verification_Token als Schlüssel ein, geben Sie Ihr Token als Wert ein und klicken Sie dann auf , um hinzuzufügen.
Ändern Sie in Ihrem Code Ihre Token -String ("this_is_my_token") in process.env.verification_token. Senden Sie Ihre Änderungen und schieben Sie sie nach Heroku.
Wenn der Server in Betrieb ist, erstellen wir nun eine Facebook -Anwendung und seine zugehörige Seite. Sie können eine neue Seite erstellen oder eine vorhandene Seite verwenden.
Um eine Facebook -Seite zu erstellen, melden Sie sich bei Facebook an und gehen Sie zur Seite erstellen. Wählen Sie den Seitentyp aus den angegebenen Optionen aus. Ich habe Entertainment gewählt.
Wählen Sie dann die Kategorie und den Namen der Seite aus.
Nach dem Klicken auf starten wird eine Seite erstellt, und Sie werden aufgefordert, detailliertere Informationen zu Ihrer Anwendung (Beschreibung, Website, Profilbild, Zielgruppe usw.) bereitzustellen. Sie können diese Setup -Schritte jetzt überspringen.
Um eine Facebook -Anwendung zu erstellen, wechseln Sie zum neuen Anwendungsseite und klicken Sie auf die grundlegende Einstellungen unten, um die unten auszuwählen.
Füllen Sie die erforderlichen detaillierten Informationen ein. Wählen Sie page-orientierte Anwendung als Kategorie.
Nach dem Klicken auf App ID wird das Dashboard der Anwendung geöffnet.
in den Produkteinstellungen auf der rechten Seite klicken Sie im Abschnitt Messenger auf , um zu starten. Sie werden dann wie unten gezeigt auf die Messenger -Einstellungsseite gebracht.
Live -Update bekannt) können Sie Änderungen abonnieren, die Sie in Echtzeit nachverfolgen und empfangen möchten, ohne die API anzurufen.
Klicken Sie im Abschnitt Webhook aufWebhook festlegen
Geben Sie die aktualisierte Callback -URL ein (die in der Backend -Anwendung definierte Endpunkt -URL, d. H./webhook), und geben Sie den Überprüfungs -Token (das in der Backend -Anwendung verwendete Token ein, d. H. Im Prozess gespeichert. Wert in env. Verification_token) und alle Kontrollkästchen auswählen. Diese geben an, welche Ereignisse die Anwendung abonniert. Wir werden später die Rolle dieser Ereignisse kennenlernen.
Nachdem Sie Webhook erfolgreich aktiviert haben, sollten Sie im Bereich Webhook fertiggestellt werden, sowie eine Liste von abonnierten Ereignissen. Wenn Sie einen Fehler erhalten, stellen Sie sicher, dass Sie die richtige URL für den Webhook -Endpunkt eingegeben haben (enden Sie mit /Webhook) und stellen Sie sicher, dass das hier verwendete Token dieselbe ist wie die, die Sie in Ihrer Knotenanwendung verwenden.
Wählen Sie im Abschnitt Token-Generierung Ihre Seite im Dropdown-Menü aus. Nach der Authentifizierung wird für Sie ein Seiten -Zugriffs -Token generiert.
Erstellen Sie eine andere Umgebungsvariable auf Heroku und setzen Sie den Schlüssel auf page_access_token und nehmen Sie das generierte Token als value . Beachten Sie, dass das generierte Token auf der aktuellen Seite, auf der es auf Facebook angezeigt wird, nicht gespeichert wird. Jedes Mal, wenn Sie auf die Seite zugreifen, ist das Feld "Seitenzugriffs-Token" leer und ein neues Token wird generiert, wenn Sie Ihre Facebook-Seite im Dropdown-Menü der Seite auswählen. Jedes zuvor erstellte Token wird jedoch weiterhin funktionieren. Kopieren Sie also das Token, bevor Sie die Seite schließen.
Damit Ihr Webhook Ereignisse auf einer bestimmten Seite empfangen, müssen Sie Ihre Bewerbung auf dieser Seite abonnieren. Wählen Sie im Abschnitt Webhook die Seite, die Sie abonnieren möchten.
Das erste, was Benutzer sehen, wenn sie ein neues Gespräch mit Ihrem Bot starten, ist der Begrüßungsbildschirm. In diesem Bildschirm werden Name, Beschreibung, Profilbild und Titelfoto Ihrer Seite angezeigt. Sie können den Bildschirm anpassen, indem Sie den Grußtext einstellen, der anstelle der Seitenbeschreibung verwendet wird. Sie können es verwenden, um Einführungsnachrichten einzurichten, um Benutzer mitzuteilen, was sie von Ihrem Bot erhalten können.
standardmäßig sendet der Benutzer die erste Nachricht an Ihren Bot, um eine Konversation zu starten. Sie können jedoch die Startschaltfläche aktivieren, damit Ihr Bot anfängliche Nachrichten senden kann. Die Schaltfläche sendet ein Ereignis an Ihren Server, auf den Sie dann antworten können.
, um Grußtext festzulegen, Ihre Seite zu öffnen und zu seiner set .
Wählen Sie Nachricht aus dem linken Bereich und öffnen Sie im rechten Bereich, um Messenger -Grüße anzuzeigen. Stellen Sie Nachrichten auf Ihre Einstellungen ein.
So aktivieren Sie die Startschaltfläche, ersetzen Sie die Zeichenfolge page_access_token in der folgenden Anweisung durch Ihr Token und fügen Sie den Befehl in das Terminal ein.
<code>$ mkdir spbot $ cd spbot $ npm init</code>
Die obige Operation sendet eine Anfrage an die Facebook -Graph -API. Wenn die Anfrage erfolgreich ist, wird der Start -Schaltfläche auf dem Begrüßungsbildschirm der neuen Konversation angezeigt. Der Benutzer klickt auf diese Schaltfläche und löst den empfangenen Rückruf aus. Ihr Bot kann dann auf diesen Postback antworten.
Postback kann durch verschiedene Arten von Komponenten ausgelöst werden - Schaltfläche zum Abbau, Startschaltfläche, persistentes Menü oder strukturierte Nachrichten. Sie können jede Zeichenfolge als Nutzlast festlegen. Im Backend werden wir diese Zeichenfolge verwenden, um Postbacks zu identifizieren, die aufgrund des Klickens auf die Schaltfläche Start gesendet werden. Um Postback -Nachrichten zu erhalten, muss Ihre Bewerbung einen Postback in Ihrem Webhook abonnieren. Wir haben dies bereits bei der Einrichtung des Webhooks gemacht, indem wir das Kontrollkästchen Messaging_Postbacks ausgewählt haben.
Wenn die Startschaltfläche erfolgreich eingestellt ist, wird die folgende Antwort angezeigt.
<code>{ "name": "spbot", "version": "1.0.0", "description": "SPBot Server", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node app.js" }, "author": "Joyce Echessa", "license": "ISC" }</code>
Denken Sie daran, dass der Begrüßungsbildschirm und die Startschaltflächen nur in neuen Gesprächen angezeigt werden. Wenn Sie den Bot codieren und testen, können Sie ein neues Gespräch beginnen, indem Sie das aktuelle Gespräch löschen.
Um nach Postback -Nachrichten zu verarbeiten, fügen Sie Folgendes in Ihre Knotenanwendung ein.
<code>$ npm install express request body-parser mongoose --save</code>
Wenn jemand mit Ihrem Bot interagiert oder eine Nachricht an Ihre Seite sendet, werden Updates über Ihre Webhook -Integration gesendet. Um die Nachricht zu erhalten, müssen Sie einen Post -Anruf im Webhook anhören. Alle Rückrufe werden an diesen Webhook gesendet.
Im obigen Post -Handler iterieren wir die an die Anwendung gesendeten Nachrichteneinträge. Manchmal werden Nachrichten in Chargen zusammengesandt, sodass ein Eintrag mehrere Objekte enthalten kann. Anschließend durch das Nachrichtenereignis für jeden Eintrag durchlaufen und seinen Typ überprüfen. Im Folgenden finden Sie verschiedene Rückrufnachrichten, die an die Anwendung gesendet werden können.
Wenn das Ereignis nach dem Nachback ist, werden wir die Funktion processPostback () aufrufen, in der wir den Nutzlastwert überprüfen. Denken Sie daran, dass wir die Begrüßung auf die Nutzlast der Startschaltfläche festlegen. Hier überprüfen wir also zuerst, ob das Meldungsereignis aufgrund des Klickens auf die Schaltfläche gesendet wurde. In diesem Fall verwenden wir die Benutzerprofil -API, um den Namen des Benutzers zu erhalten und die Nachricht zu personalisieren, die an diese zurückgesendet wird. Aus der API können Sie ihren Namen, ihren Nachnamen, das Profilbild, das Gebietsschema, ihre Zeitzone und das Geschlecht erhalten.
Senden Sie die Nachricht an die Funktion "sendMessage (), die sie an die Messenger -Plattform veröffentlicht. Im Webhook Post -Handler geben wir 200 OK HTTP -Antwort zurück.
so schnell wie möglich 200 zurückkehren, ist sehr wichtig. Facebook wird 200 warten, bevor die nächste Nachricht gesendet wird. In einem Bot mit großer Kapazität kann eine Verzögerung von 200 Renditen zu einer erheblichen Verzögerung für Facebook führen, dass Facebook Nachrichten an Ihren Webhook übermittelt.
Wenn Ihr Webhook einen Fehler zurückgibt (d. H. Kein 2xx -Zustand) oder Timeout (z.
Wenn das Webhook 8 Stunden lang fehlschlägt, sendet Facebook Ihnen eine Warnung, in der Sie darüber informiert werden, dass das Webhook deaktiviert ist und Ihre App abhebt. Nachdem Sie das Problem behoben haben, müssen Sie den Webhook neu anpassen und die Anwendung wieder auf die Seite abschreiben.
reichen Änderungen ein und drücken Sie sie nach Heroku.
Um den Bot zu testen, können Sie Ihren Messenger -Kurzlink von Facebook.com, Facebook Mobile App verwenden oder Ihren Messenger -Kurzlink https://www.php.cn/link/1fd37ce80d495Bebcb35e0054d7384Fe .
Auf Facebook und Messenger finden Sie die Seite, indem Sie nach dem Seitennamen suchen.
Wie Sie oben sehen können, können Sie nicht immer garantieren, dass der Name der Seite eindeutig ist. Ihre Benutzer können die falsche Seite auswählen. Um dies zu vermeiden, können Sie einen einzigartigen Benutzernamen für die Seite festlegen. Gehen Sie dazu auf die Homepage Ihrer Seite und wählen Sie im Dropdown-Menü mehr , um die Seiteninformationen zu bearbeiten.
https://www.php.cn/link/13f3d8f0b1d534d2ce312263653c5594 besuchen, um die Interaktion zu starten.
Wie unten gezeigt, können Sie den Grußtext sehen, den wir für den Begrüßungsbildschirm und die Tastestarten.
Nachdem Sie auf diese Schaltfläche geklickt haben, sollten Sie eine vom Server gesendete Nachricht sehen.
Wenn Sie einen Text eingeben, erhalten Sie keine Antwort. Wir werden dieses Problem als nächstes lösen.
Einrichten Sie die Datenbank
Aufgrund dieser Hin- und Her -Interaktion muss sich der Roboter an den aktuellen Filmeintrag des Benutzers erinnern. Facebook hält die Sitzung nicht mit Ihrem Webhook geöffnet. Daher gehen alle Daten, die Sie im Sitzungsobjekt speichern, in der nächsten Anfrage verloren. Wir werden diese Daten stattdessen in der Datenbank speichern - monodb speziell. Wir werden das MLAB-Add-On für Heroku verwenden.
MLAB ist ein Datenbank-AS-A-Service für MongoDB. Während Sie auf Heroku den kostenlosen Sandbox MLAB -Plan verwenden können, müssen Sie Ihre Kreditkarte auf Heroku zur Überprüfung sparen. Wenn Sie Ihre Kartendaten nicht angeben möchten, können Sie ein Konto auf der MLAB -Website registrieren, auf dem Sie eine kostenlose Schicht der Sandbox -Datenbank erstellen und von Ihrem Code aus dieser Datenbank (dazu später) zu dieser Datenbank verlinken.
Um Add-Ons auf Heroku zu verwenden, gehen Sie zum Dashboard der Anwendung und wählen Sie die Registerkarte Ressourcen . Suchen Sie nach MLAB und wählen Sie das Ergebnis aus. Wählen Sie im Dialogfenster, das auftaucht, Sandbox - kostenloser Plan im Dropdown -Menü und klicken Sie auf Bereitstellung . Sie sollten die Bestätigung für das ausgewählte Add-On sehen.
Wenn Sie die Umgebungsvariablen auf Heroku überprüfen, sehen Sie eine Variable mit dem MongoDB -URI -Set.
Wenn Sie es vorziehen, eine MongoDB -Datenbank auf Ihrer MLAB -Website einzurichten, registrieren Sie dort ein Konto und gehen Sie zum Erstellen einer neuen Bereitstellungsseite. Ändern Sie die Einstellung Plan in einzelner Knoten und wählen Sie Sandbox aus der Abschnitt Standardzeile .
Stellen Sie einen Namen für Ihre Datenbank fest und klicken Sie auf die Erstellen Sie eine neue MongoDB -Bereitstellung , um den Prozess abzuschließen.
Wählen Sie auf der folgenden Seite die Datenbank aus, die Sie gerade aus der angezeigten Tabelle erstellt haben. Eine Seite wird mit Anweisungen zum Zugriff auf die Datenbank geöffnet.
Wählen Sie die Registerkarte Benutzer und klicken Sie auf die Schaltfläche Datenbank Benutzer hinzufügen. Geben Sie Ihren Benutzernamen und Ihr Passwort ein und klicken Sie auf erstellen. Dadurch werden ein neuer Anmeldeinformationssatz erstellt, mit dem Sie Ihre Anwendung auf die Datenbank zugreifen können.
In der oberen Hälfte der Seite finden und kopieren Sie die Datenbank URI - es sieht aus wie Mongodb: //
Zurück zur Knotenanwendung, erstellen Sie eine Datei namens Movie.js und speichern Sie sie in einem Ordner namens Models. Fügen Sie Folgendes in die Datei ein:
<code>$ mkdir spbot $ cd spbot $ npm init</code>
Das Filmdatenbankmodell wird oben erstellt. user_id ist die von der Messenger -Plattform erhaltene Benutzer -ID, während andere Felder von der Film -API erhalten werden. Wir werden nur die letzten vom Benutzer gesuchten Filme speichern, sodass die Datenbank nur einen Datensatz pro Benutzer enthält.
Wir können das Feld user_id weglassen und nur die ID des Benutzers als _id für jeden erstellten Datensatz verwenden. Dies funktioniert, da die Benutzer -ID auf der Facebook -Seite eindeutig ist. Wenn Sie dies tun, sollten Sie wissen, dass die Benutzer-ID Seitenweite ist. Dies bedeutet, dass die ID des Benutzers für die angegebene Seite eindeutig ist, der Benutzer jedoch unterschiedliche IDs für verschiedene Seiten hat.
Sie müssen dies nur wissen, wenn Ihr Bot verschiedenen Seiten serviert (ja, ein Bot kann mehrere Seiten servieren). Wenn Ihr Bot also mehreren Seiten dient, ist es möglich, den Benutzer nur anhand seiner Benutzer -ID zu identifizieren, und das Feld _ID mithilfe der Benutzer -ID, da der Datensatz ebenfalls fehlschlägt, da dies eindeutig sein muss und Sie nicht in der Lage sind, können Sie nicht in der Lage sein garantieren Einzigartigkeit über Seiten hinweg.
Nachdem die Datenbank und das Modell eingerichtet wurden, können wir jetzt den Chatbot vervollständigen. Der Code wird in Abschnitten gerendert. Wenn Sie jedoch den gesamten Code in Ihr Projekt einfügen möchten, finden Sie hier einen Link zur App.js -Datei.
Setzen Sie zuerst die Datenbankverbindung ein. Mongoose hätte zuvor mit anderen Modulen installiert werden sollen.
<code>{ "name": "spbot", "version": "1.0.0", "description": "SPBot Server", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node app.js" }, "author": "Joyce Echessa", "license": "ISC" }</code>
Ändern Sie den Post -Handler des Webhooks, wie unten gezeigt.
<code>$ npm install express request body-parser mongoose --save</code>
Wir haben Überprüfungen für Ereignisse vom Typ Meldung hinzugefügt und an die Funktion processMessage () übergeben.
<code>node_modules</code>
Hier prüfen wir zunächst, ob die Nachricht über den Meldung Echo -Rückruf gesendet wird. Dieser Rückruf erfolgt, wenn Ihre Seite eine Nachricht sendet. Beispielsweise wird die erste Nachricht (Gruß), die wir an den Benutzer senden, an unseren Webhook zurückgesandt. Wir möchten keine unserer eigenen Nachrichten verarbeiten, also haben wir es überprüft.
Dann überprüfen wir, ob die Nachricht Text oder Anhang ist (Bild, Video, Audio). Für letztere senden wir eine Fehlermeldung an den Benutzer. Für Textnachrichten überprüfen wir, ob die Eingabe bestimmte Schlüsselwörter übereinstimmt, die angeben, in welchem Detail der Benutzer des Films haben möchte. Zu diesem Zeitpunkt hat der Benutzer einen Film abgefragt und der Film wird in der Datenbank gespeichert. Die Funktion "GetMoviedetail ()) fragt die Datenbank an und gibt einen bestimmten Datensatz zurück.
<code class="language-javascript">var express = require("express"); var request = require("request"); var bodyParser = require("body-parser"); var app = express(); app.use(bodyParser.urlencoded({extended: false})); app.use(bodyParser.json()); app.listen((process.env.PORT || 5000)); // 服务器索引页面 app.get("/", function (req, res) { res.send("已部署!"); }); // Facebook Webhook // 用于验证 app.get("/webhook", function (req, res) { if (req.query["hub.verify_token"] === "this_is_my_token") { console.log("已验证 webhook"); res.status(200).send(req.query["hub.challenge"]); } else { console.error("验证失败。令牌不匹配。"); res.sendStatus(403); } });</code>
Wenn die Abfrage des Benutzers keine festgelegten Schlüsselwörter übereinstimmt, wird der Roboter angenommen, dass die Eingabe für die Filmabfrage verwendet wird, sodass er an die Funktion "FindMovie () übergeben wird, die die Open Movie Database -API mit der Eingabe aufruft.
<code>$ git init $ git add . $ git commit -m "Initial commit"</code>
Wenn ein Film gefunden wird, speichern Sie seine Details mit der ID des Benutzers. Wenn bereits ein Datensatz mit dieser Benutzer -ID erstellt wurde, wird er aktualisiert. Wir erstellen dann eine strukturierte Nachricht und senden sie an den Benutzer.
Mit der Messenger -Plattform können Sie zusätzlich zu Text Bilder, Videos, Audio, Dateien und strukturierte Nachrichten senden. Strukturierte Nachrichten sind Vorlagen, die verschiedene Anwendungsfälle unterstützen. Mit Schaltflächenvorlagen können Sie Text und Schaltflächen senden. Mit universellen Vorlagen können Sie Bilder, Titel, Untertitel und Schaltflächen definieren. In unserer Anwendung verwenden wir universelle Vorlagen.
Ändern Sie die Funktion processPostback () wie unten gezeigt.
<code>$ mkdir spbot $ cd spbot $ npm init</code>
Das obige ist der detaillierte Inhalt vonErstellen eines Facebook -Chat -Bots mit Node und Heroku. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!