Erhalten Sie automatisch Produktinformationen über Facebook Messenger
Dieses Tutorial zeigt Ihnen, wie Sie einem Nutzer automatisch relevante Produktinformationen über den Facebook Messenger zur Verfügung stellen können.
In diesem Anwendungsfall grüßt der Nutzer das Unternehmen über die Facebook-Seite des Unternehmens. Eine Nachricht wird automatisch an den Nutzer zurückgeschickt. Mithilfe eines Schlüsselwortabgleichs kann der Nutzer maßgeschneiderte Produkt- und Serviceinformationen erhalten.
HINWEIS: In dieser Anleitung wird davon ausgegangen, dass Sie bereits ein Facebook-Profil und eine Facebook-Seite erstellt haben.
Quellcode
Der Quellcode für dieses Projekt ist in der Community verfügbar GitHub-Repository.
Voraussetzungen
- Vonage-Account erstellen
- Node JS installieren - die für die Verwendung der Vonage-Befehlszeilenschnittstelle (CLI) erforderlich sind.
- Installieren Sie die Vonage CLI
- Wissen, wie Sie Ihren Webhook-Server lokal testen können
- Python 3 installiert
- Kolben installiert
Die Schritte
Nachdem die Voraussetzungen erfüllt sind, gehen Sie wie folgt vor:
- Erstellen einer Vonage-Applikation
- Verknüpfen Sie Ihre Vonage-Anwendung mit Ihrer Facebook-Seite
- Ngrok zum Laufen bringen
- Schreiben Sie Ihre Basisanwendung
- Interaktion mit Ihrer Facebook-Seite
- Minimaler Client zum Senden von Facebook Messenger-Nachrichten mit Python
- Der Anwendungsfall im Rückblick
- Eine Umsetzung
Es gibt verschiedene Möglichkeiten, das gleiche Ergebnis mit Vonage zu erzielen. In diesem Tutorial wird nur ein bestimmter Weg gezeigt, z. B. wie Sie die Anwendung über die Befehlszeile und nicht über das Dashboard erstellen. In anderen Tutorials werden andere Vorgehensweisen gezeigt.
Erstellen Sie Ihre Vonage Applikation
Falls Sie dies noch nicht getan haben, erstellen Sie ein neues Verzeichnis für Ihr Projekt, z. B. fbm-app. Wechseln Sie in dieses Verzeichnis.
Verwenden Sie die CLI, um Ihre Vonage-Anwendung zu erstellen:
Notieren Sie sich die generierte Application ID. Sie können dies auch in der Dashboard.
Mit diesem Befehl wird auch ein privater Schlüssel erstellt, fbm_app.key in Ihrem aktuellen Verzeichnis, sowie die Aktualisierung/Erstellung von vonage_app.json.
Mit diesem Befehl werden auch die beiden Webhooks festgelegt, über die die gesamte Interaktion zwischen Ihrer Anwendung und Vonage erfolgt. Sie müssen einen Server haben, der für Vonage unter diesen URLs erreichbar ist.
Verknüpfen Sie Ihre Bewerbung mit Ihrer Facebook-Seite
Teil 1: Verbinden Sie Ihre Facebook-Seite mit Ihrem Vonage API Account
Wenn Sie Ihre Facebook-Seite mit Ihrem Vonage API-Konto verbinden, kann Vonage eingehende Nachrichten verarbeiten und Sie können Nachrichten über die Messages API versenden.
Um Ihre Facebook-Seite mit Ihrem Vonage API-Konto zu verknüpfen, besuchen Sie die Verknüpfen Sie die Facebook-Seite in Ihrem Dashboard.
Melden Sie sich über das Dashboard bei Ihrem Facebook Account an.
Wählen Sie in der Dropdown-Liste die Facebook-Seite aus, die Sie mit Ihrem Vonage API Account verbinden möchten.
Wählen Sie den API-Schlüssel, den Sie verwenden möchten.
Klicken Sie auf Vollständige Einrichtung.
Zu diesem Zeitpunkt sind Ihr Vonage API Account und diese Facebook-Seite miteinander verknüpft. Die Verknüpfung zwischen Ihrem Vonage API Account und der Facebook-Seite hat kein Ablaufdatum, kann aber gelegentlich ablaufen. Nach Ablauf müssen Sie die Verknüpfung mit demselben Verfahren erneut herstellen.
Teil 2: Verbinden Sie Ihre Facebook-Seite mit Ihrer Vonage API-Anwendung
Sobald Ihre Facebook-Seite mit Ihrem Vonage API-Account verbunden ist, kann sie von jeder Ihrer Applikationen genutzt werden. So verbinden Sie die Facebook-Seite mit einer Vonage-API-Anwendung:
Navigieren Sie zu Ihrem Applikationsseite.
Klicken Sie in der Liste auf die Anwendung, die Sie verknüpfen möchten. Sie können filtern, indem Sie die Fähigkeiten Dropdown-Liste und wählen Sie
messagesum dies zu erleichtern.Wählen Sie dann die Verknüpfte soziale Kanäle tab.
Klicken Sie auf die Link neben der Facebook-Seite, mit der Sie Ihre Anwendung verbinden möchten, und stellen Sie sicher, dass die Schaltfläche Anbieter ist Facebook Messenger.
Du bist jetzt bereit, Nachrichten zu empfangen, die Nutzer an dich auf deiner Facebook-Seite senden.
HINWEIS: Wenn du in Zukunft eine andere Anwendung mit dieser Facebook-Seite verknüpfen möchtest, musst du nur den in Teil 2 beschriebenen Vorgang für die neue Anwendung wiederholen.
Ngrok zum Laufen bringen
Stellen Sie sicher, dass Sie Ngrok zum Testen lokal laufen lassen. Um Ngrok zu starten, geben Sie ein:
Um eine temporäre Ngrok-URL zu erzeugen. Wenn Sie ein bezahlter Abonnent sind, können Sie eingeben:
Beachten Sie, dass Ngrok in diesem Fall die Vonage-Webhooks, die Sie bei der Erstellung Ihrer Vonage-Anwendung angegeben haben, an localhost:9000.
Schreiben Sie Ihre Basisanwendung
Im einfachsten Fall würde Ihre Anwendung also wie folgt aussehen:
from flask import Flask, request, jsonify
from pprint import pprint
app = Flask(__name__)
@app.route('/inbound', methods=['POST'])
def inbound_message():
data = request.get_json()
pprint(data)
return ("200")
@app.route('/status', methods=['POST'])
def message_status():
data = request.get_json()
pprint(data)
return ("200")
if __name__ == '__main__':
app.run(host="localhost", port=9000)
Fügen Sie diesen Code in eine Datei namens app1.py und speichern Sie es.
Führen Sie es lokal mit aus:
Ihre Basisanwendung ist nun einsatzbereit und kann Ereignisse protokollieren.
Interaktion mit Ihrer Facebook-Seite
Jetzt, wo Ihre Basis-App eingerichtet ist und läuft, können Sie eine Nachricht an Ihre Facebook-Seite senden und dann überprüfen, ob die Nachricht protokolliert wurde. Wenn Sie also eine einfache Nachricht mit Messenger an Ihre Facebook-Seite senden, werden Sie eine Protokollierung wie die folgende sehen:
Hier finden Sie einige wichtige Informationen, die Sie nutzen können, um Ihre Anwendung nützlicher zu gestalten.
| Feld | Beschreibung |
|---|---|
from | Die Facebook-ID der Person, die eine Nachricht an Ihre Seite sendet. |
to | Die Facebook-ID deiner Seite (die Seite, an die die Person eine Nachricht sendet). |
message | Die gesendete Nachricht. |
Sie können sehen, dass die Nachricht ein JSON-Objekt ist. Sie können den Nachrichtentext aus diesem Objekt extrahieren.
Beachten Sie, dass es nützlich ist, sowohl die Facebook-ID Ihrer Seite (die Sie möglicherweise nicht kennen) als auch die Facebook-ID des Nutzers, der Ihnen eine Nachricht sendet, zu erfassen. Die Facebook-ID ist besonders nützlich, wenn Ihre Anwendung mit mehreren Facebook-Seiten arbeitet.
Minimaler Client zum Senden von Facebook Messenger-Nachrichten mit Python
Derzeit unterstützt Vonage offiziell keine Messages und Dispatch API im Python Server SDK, aber unsere REST API wird vollständig unterstützt und die Python-Code wird bereitgestellt im Projekt für Sie in einer wiederverwendbaren Klasse. Da der Code zur Verfügung gestellt wird, werden wir ihn in diesem Tutorial nicht weiter behandeln.
Der Anwendungsfall im Rückblick
Es ist an der Zeit, diesen Anwendungsfall genauer zu untersuchen, damit Sie Ihre Anwendung effektiver gestalten können.
Stellen Sie sich vor, ein Nutzer sendet Ihrer Facebook-Seite über Messenger eine Nachricht wie "Hallo". Aufgrund von Zeitzonen sind Sie jedoch nicht verfügbar, um auf die Nachricht zu antworten - dies kann den Nutzer niedergeschlagen zurücklassen. Andererseits wäre es toll, wenn Sie automatisch mit nützlichen Informationen antworten könnten. Zum Beispiel könnten Sie auf eine Nachricht wie "Hallo" mit "Willkommen bei T's Cat Supplies" antworten. Hier sind unsere wichtigsten Produktkategorien: Spielzeug, Futter, Medizin, Schmuck".
Mit einem Python-Konstrukt wie if keyword in msg können Sie Schlüsselwörter erkennen und auf dieser Grundlage Material versenden. Wenn ein Nutzer zum Beispiel eine Nachricht wie "Hallo, meine Panzer müssen sortiert werden" schickt, könnten Sie das Wort tank und senden Sie Informationen über Ihre Tankreinigungsdienste. Oder wenn Sie eine Nachricht erhalten wie "Hallo, ich glaube, ich brauche einen Kran, um unsere Rohrleitungsabschnitte zu heben." Sie könnten Informationen über Ihre Kranvermietungsdienste senden. Werden keine Schlüsselwörter erkannt, ist es ein Leichtes, eine allgemeine Nachricht an den Nutzer zu senden, um ihm die Orientierung zu erleichtern.
Diese Auto-Response-Funktion ist nützlich, da einige Unternehmen Hunderte von Produkten und Dienstleistungen anbieten.
Eine weitere nützliche Funktion ist die Möglichkeit, die automatische Antwort abzuschalten, um beispielsweise direkt mit einem Menschen zu sprechen. Sie könnten Befehle einbauen wie auto: off und auto: on um zu kontrollieren, wie Ihre Kunden mit Ihrer Facebook-Seite interagieren.
In den folgenden Abschnitten erfahren Sie, wie Sie diesen Anwendungsfall umsetzen können.
Eine Umsetzung
Eine der nützlichen Datenstrukturen bei der Implementierung dieses Anwendungsfalls ist das Python-Wörterbuch. Ein Beispiel können Sie hier sehen:
cats_dict = {
'other': 'Our products: toys, food, meds, and bling',
'toys': 'More info on cat toys here https://bit.ly/abc',
'food': 'More info on cat food here https://bit.ly/def',
'meds': 'More info on cat meds here https://bit.ly/ghi',
'bling': 'More info on cat bling here https://bit.ly/jkl'
}
Um dies zu verdeutlichen, betrachten Sie den folgenden Code:
class ProductMatcher:
auto_mode = True
cats_dict = {
'other': 'Our products: toys, food, meds, and bling',
'toys': 'More info on cat toys here https://bit.ly/abc',
'food': 'More info on cat food here https://bit.ly/def',
'meds': 'More info on cat meds here https://bit.ly/ghi',
'bling': 'More info on cat bling here https://bit.ly/jkl'
}
...
def product_matcher(self, fb_sender, user, msg):
product = 'other'
msg = msg.lower().strip()
if self.auto_mode:
if "auto: off" in msg:
self.auto_mode = False
self.fbm.send_message(fb_sender, user, "Auto mode is off")
return
for k in self.cats_dict.keys():
if k in msg:
product = k
break
self.fbm.send_message(fb_sender, user, self.cats_dict[product])
if "auto: on" in msg:
self.auto_mode = True
self.fbm.send_message(fb_sender, user, "Auto mode is on")
return product
Wenn der Nutzer eine Nachricht über Messenger sendet und kein Mensch antwortet, wird ein Menü an den Nutzer zurückgeschickt. In der Nachricht des Nutzers wird das Produkt extrahiert und die entsprechende Nachricht gesendet. Dieser Code verfolgt einen speziellen Ansatz, aber er zeigt hoffentlich das Potenzial auf.
Sie werden sich vielleicht fragen, ob dies für den Benutzer lästig ist, wenn er mit einer echten Person sprechen möchte. Die automatische Beantwortung kann jedoch deaktiviert werden, sobald Sie online sind und Nachrichten entgegennehmen können. Der Code erlaubt es dem Benutzer, die folgenden Befehle zu verwenden auto: off und auto: on um die Interaktion zu steuern. Dies könnte auch durch den Kanalmanager gesteuert werden.
Im obigen Code wird auch das Produkt zurückgegeben, an dem der Benutzer interessiert ist. Dies könnte z. B. verwendet werden, wenn Sie den Benutzer und seine Produktauswahl in einer Datenbank speichern möchten. Sie könnten auch einen Benutzer in der Datenbank nachschlagen, um herauszufinden, ob er ein neuer Kunde ist oder schon einmal mit dem Unternehmen zu tun hatte.
Zusammenfassung
In diesem Tutorial haben Sie einen Anwendungsfall gesehen, bei dem der Benutzer automatisch Produktinformationen über Facebook Messenger erhalten kann. Die Grundlage dafür war der Abgleich mit Schlüsselwörtern. Der Nutzer hatte auch die Möglichkeit, den automatischen Antwortmodus nach Bedarf umzuschalten.
Weitere Ressourcen
- Die vollständige Quellcode.
- Messages API Dokumentation