Facebook Messenger
-
Einen Facebook-Account für Entwickler
-
Eine Facebook-Seite
-
Eine Facebook-App
-
Ein Seitenzugriffstoken
-
Eine App-Secret-ID
-
Die Webhook-URL
-
Ein Verifizierungstoken
Um Ihren digitalen Assistenten (oder einen Standalone-Skill) in Facebook Messenger auszuführen, müssen Sie zuerst eine Facebook-Seite und eine Facebook-App einrichten. Weitere Informationen hierzu finden Sie in der Dokumentation der Facebook Messenger-Plattform.
Im Folgenden erhalten Sie einen Überblick über die Funktionsweise. Die Facebook-Seite hostet Ihren digitalen Assistenten. Benutzer chatten mit Ihrem digitalen Assistenten über diese Seite, wenn sie das Chatfenster in einem Desktopbrowser verwenden. Benutzer können mit einem Mobilgerät direkt über Facebook Messenger selbst mit Ihrem digitalen Assistenten interagieren. In diesem Szenario ermöglicht die Facebook-App Ihrem digitalen Assistenten, die von Facebook Messenger verarbeiteten Nachrichten abzurufen.
Um einen Facebook Messenger-Kanal zu erstellen, benötigen Sie Artefakte, die sowohl von Oracle Digital Assistant als auch von Facebook Messenger generiert werden.
Von Oracle Digital Assistant benötigen Sie:
- die Webhook-URL, die Ihren digitalen Assistenten mit Facebook Messenger verbindet
- das Verifizierungstoken, mit dem Facebook Messenger den digitalen Assistenten identifizieren kann
Von Facebook Messenger benötigen Sie:
- das Seitenzugriffstoken
- die App-Secret-ID
Da Sie diese Artefakte zwischen Digital Assistant und Facebook Messenger übertragen müssen, müssen Sie beim Konfigurieren des Kanals zwischen diesen beiden Plattformen wechseln.
Schritt 1: Facebook Messenger einrichten
Generieren Sie zunächst das App Secret und das Seitenzugriffstoken in Facebook Messenger.
-
Melden Sie sich beim Facebook-Account für Entwickler an.
-
Erstellen Sie eine Facebook-Seite, auf der Ihr Bot gehostet wird. Die Beschreibung, Bilder und die Startseite, die Sie zu der Seite hinzufügen, identifiziert den Bot für die Benutzer.
-
Erstellen Sie als Nächstes die Facebook-App, die Sie mit dieser Seite verknüpfen möchten. Da es sich um eine Messenger-App handelt, wählen Sie Apps für Messenger aus, und klicken Sie dann auf App-ID erstellen.
Beschreibung des Illustrationssetups: fbapp.pngWenn Sie in diesem Dialogfeld die Option Apps for Messenger nicht ausgewählt haben (z.B. wenn Sie eine Test-App erstellen), klicken Sie in der linken Navigationsleiste auf Add Product, wählen Sie auf der Seite "Produktsetup" die Option Messenger aus, und klicken Sie dann auf Get Started.
Beschreibung der Abbildung add-product.png - Kopieren Sie auf der Dashboard-Seite der Facebook-App das App Secret, und fügen Sie es an einer beliebigen Stelle in Ihrem System ein.
Beschreibung der Abbildung facebook-dashboard.pngSie benötigen das App Secret, um die Facebook-Kanalkonfiguration abzuschließen.
-
Generieren Sie im Dashboard für Ihre App das Page Access Token, indem Sie Ihre Facebook-Seite auswählen.
Beschreibung der Abbildung page-access-token.png - Kopieren Sie das Zugriffstoken, und fügen Sie es an einer beliebigen Stelle ein.
Mit diesem Token erhält Ihre Facebook-App Zugriff auf die Messaging-API von Facebook, mit der Sie Ihre Kanaldefinition in Digital Assistant abschließen können.
Wenn Sie Änderungen an der API des Facebook-Benutzerprofils vornehmen möchten, müssen Sie jetzt Berechtigungen für bestimmte Benutzerprofilfelder für alle Facebook-Apps anfordern, die Sie vor oder nach dem 26. Juli 2018 erstellt haben. Ohne die folgenden Berechtigungen wird der Benutzername als zufällige numerische Zeichenfolge aufgefüllt.
-
pages_messaging
-
pages_user_locale
-
pages_user_timezone
Schritt 2: Kanal in Digital Assistant erstellen
- Klicken Sie in Digital Assistant im linken Menü auf Kanäle, und wählen Sie Benutzer aus.
-
Klicken Sie als Nächstes auf Kanal hinzufügen, um das Dialogfeld "Kanal erstellen" zu öffnen.
-
Geben Sie einen Namen für Ihren Kanal ein.
-
Wählen Sie als Kanaltyp Facebook Messenger aus.
Beschreibung der Abbildung create-channel-dialog-started.png -
Fügen Sie im Feld "Seitenzugriffstoken" das Seitenzugriffstoken ein, das Sie zuvor beim Einrichten von Facebook Messenger generiert haben.
-
Fügen Sie im Feld "App Secret" das App Secret ein, das Sie zuvor beim Einrichten von Facebook Messenger kopiert haben.
-
Klicken Sie auf Erstellen.
-
Kopieren Sie auf der Seite "Kanäle" sowohl das Verifizierungstoken als auch die WebHook-URL, und fügen Sie sie an einer beliebigen Stelle in Ihrem System ein. Sie benötigen diese Angaben, um den Facebook-Webhook zu konfigurieren.
Beschreibung der Abbildung fb-channel-complete.png
Schritt 3: Facebook Messenger-Webhook konfigurieren
-
Vergewissern Sie sich, dass Sie in Facebook Messenger das Projekt ausgewählt haben, das Sie ursprünglich für den Webhook erstellt haben.
-
Klicken Sie auf "Messenger", und wählen Sie Einstellungen aus.
Beschreibung der Abbildung fb-navbar.png -
Klicken Sie auf Subscribe to Events, um das Dialogfeld "New Page Subscription" zu öffnen.
-
Kopieren Sie die Webhook-URL, die Sie in Digital Assistant auf der Seite "Kanäle" erhalten haben, und fügen Sie sie in das Feld "CallBack URL" im Dialogfeld "New Page Subscription" ein.
-
Kopieren Sie das in Digital Assistant generierte Verifizierungstoken, und fügen Sie es im Feld "Verify Token" ein.
-
Wählen Sie unter "Subscription Fields" die Callback-Ereignisse messages und messaging_postbacks aus.
Das Ereignis
messages
wird ausgelöst, wenn jemand eine Nachricht an Ihre Facebook-Seite sendet. - Klicken Sie auf Verify and Save.
-
Abonnieren Sie die Seite:
-
Wählen Sie in den Messenger-Einstellungen im Abschnitt "Webhooks" die Facebook-Seite für Ihren digitalen Assistenten (oder Standalone-Skill) aus.
-
Klicken Sie auf Subscribe.
Tipp:
Möglicherweise müssen Sie den Webhook bouncen, indem Sie zuerst auf Unsubscribe und dann auf Subscribe klicken. -
Schritt 4: Facebook-Kanal aktivieren
Wenn die Konfiguration abgeschlossen ist, können Sie den Facebook-Kanal aktivieren.
- Wählen Sie in Digital Assistant den Kanal aus, und aktivieren Sie die Option Kanal aktiviert.
- Klicken Sie auf
, und wählen Sie den digitalen Assistenten oder Skill aus, den Sie mit dem Kanal verknüpfen möchten.
Sie können den Bot nun über den Kanal testen.
Schritt 5: Bot in Facebook Messenger testen
Wenn Sie die den Facebook-Kanal und das Messaging konfiguriert haben, können Sie Ihren Bot mit Ihrer Facebook-Seite, mit Facebook Messenger (https://www.messenger.com/
) und mit der Facebook Messenger-App auf Ihrem Mobiltelefon testen (). Sobald Sie Ihren Bot in der Suche gefunden haben, können Sie mit dem Chat beginnen. Die Änderungen, die Sie am Dialogfeld vornehmen, werden in Echtzeit angezeigt.
Beschreibung der Abbildung test-bot.png
Persistentes Menü
In Facebook Messenger können Sie neben dem Nachrichtenfeld ein persistentes Menü erstellen. Weitere Informationen zu diesem Feature finden Sie unter https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/.
Im Folgenden finden Sie ein Beispiel mit den persistenten Menüoptionen "Pizza bestellen" und "Pasta bestellen":
Persistente Menüoption erstellen
So fügen Sie persistente Facebook-Menüoptionen für einen digitalen Assistenten oder einen Standalone-Skill hinzu:
- Stellen Sie sicher, dass alle Voraussetzungen erfüllt sind, einschließlich einer Schaltfläche zum Starten.
Diese Voraussetzungen sind hier aufgeführt: https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/#requirements
- Fügen Sie für jede Menüoption im
call_to_actions
-Array des persistenten Facebook-Menüs eine Aktion hinzu, wie unter https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/#set_menu allgemein beschrieben. - Legen Sie die persistenten Menüoptionen mit einem POST-Aufruf an die Messenger-Plattform-API fest.
Die Anforderungs-URI lautet
https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>
, wobei<PAGE_ACCESS_TOKEN>
das Seitenzugriffstoken für die Facebook-App ist.
Persistente Menüoptionen für einen digitalen Assistenten
Im Folgenden finden Sie das Format für den POST-Aufruf an die Messenger-Plattform-API zum Hinzufügen persistenter Facebook-Menüoptionen für einen digitalen Assistenten:
{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"menu item display name",
"type":"postback",
"payload":"{\"action\":\"system.textReceived\",\"variables\": {\"system.text\": \"utterance that contains the skill's invocation name\"}}"
}
]
}
]
}
Verwenden Sie für die Payload eine system.textReceived
-Aktion, die eine Äußerung von Facebook Messenger über eine system.text
-Variable an den digitalen Assistenten übergibt. Diese Äußerung sollte den Aufrufnamen des Zielskills (d.h. einen expliziten Aufruf) enthalten, um ein ordnungsgemäßes Routing sicherzustellen.
Nachfolgend finden Sie ein Beispiel für das Erstellen von zwei persistenten Menüoptionen für Ihren Skill in Facebook Messenger ("Pizza bestellen" und "Pasta bestellen"):
{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"Order Pizza",
"type":"postback",
"payload":"{\"action\":\"system.textReceived\",\"variables\": {\"system.text\": \"Order pizza from Pizza Joe \"}"
},
{
"title":"Order Pasta",
"type":"postback",
"payload":"{\"action\":\"system.textReceived\",\"variables\": {\"system.text\": \"Order pasta from Pizza Joe \"}"
}
]
}
]
}
Persistente Menüoptionen für einen Standalone-Skill
Nachfolgend finden Sie das Format für den POST-Aufruf an die Messenger-Plattform-API zum Hinzufügen persistenter Facebook-Menüoptionen für einen Standalone-Skill:
{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"menu item display name",
"type":"postback",
"payload":"{\"action\":\"action name\",\"variables\": {}"
}
]
}
]
}
Die Payload ist der Name des Ereignisses, das dem Ablauf zugeordnet ist, den Sie im Dialogablauf des Skills auslösen möchten.
Anschließend können Sie diese Hilfeaktion im persistenten Facebook-Menü referenzieren.
{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"Help",
"type":"postback",
"payload":"{\"action\":\"help\",\"variables\": {}"
}
]
}
]
}
Unterstützte Funktionen
Die Facebook Messenger-Kanäle in Digital Assistant unterstützen die folgenden Funktionen:
- Text (Senden und Empfangen)
- Bilder (Senden und Empfangen)
- Dateien (Senden und Empfangen)
- Emojis (Senden und Empfangen)
- Standort, aber veraltet (Senden und Empfang)
- Links
- Postbacks
- Standortanforderungen
- Benutzerdefinierte Eigenschaften
- Karussellkomponenten
- Listenkomponenten
Wenn Sie Ihren Skill auf mehrere Kanäle mit unterschiedlichen Formatierungsfunktionen und Syntax ausrichten, können Sie grundlegende HTML-Markups in Ihren Nachrichten verwenden. Wenn Sie dies tun, wird dieses Markup automatisch in das Preisabschriftformat von Facebook Messenger konvertiert, wenn die Nachricht an den Kanal übertragen wird. Dies ist besonders nützlich, wenn Sie Ihre Fähigkeiten zusätzlich zu Facebook Messenger auf andere Kanäle ausrichten. Siehe Rich-Text-Formatierung in Kanälen.
Nachrichten-Constraints
Für Facebook Messenger-Kanäle in Digital Assistant gelten die folgenden Nachrichten-Constraints:
- Textnachrichten
- Maximale Länge der Textnachricht: 640 Zeichen. Wenn die Länge 640 überschreitet, wird der Text auf mehrere Nachrichten aufgeteilt.
- Maximale Länge des Textaktionslabels: 20 Zeichen
- Zulässige Textaktionen: Postback, Aufruf, URL
- Maximale Anzahl der Textaktionen: 3. Wenn weitere Textaktionen vorhanden sind, wird die Nachricht in mehrere horizontale Karten konvertiert. Dabei wird auf jeder Karte derselbe Text als Titel verwendet, und jede Karte enthält bis zu 3 Aktionen.
- Horizontale Karten
- Maximale Länge des Titels: 80 Zeichen
- Maximale Länge der Beschreibung: 80 Zeichen
- Maximale Länge des Kartenaktionslabels: 20 Zeichen
- Maximale Anzahl der Karten: 10
- Maximale Anzahl der Kartenaktionen: 3. Wenn die Anzahl der Kartenaktionen 3 überschreitet, wird die Karte dupliziert, um die verbleibenden Kartenaktionen anzuzeigen.
- Mindestanzahl der Kartenaktionen: 0
- Maximale Anzahl der Kartenlistenaktionen: 0
- Ist mindestens eine Beschreibung, ein Bild oder eine Aktion erforderlich?: Ja
- Zulässige Arten von Kartenaktionen: Postback, Aufruf, URL, Teilen
- Zulässige Arten von Kartenlistenaktionen: Nicht zutreffend
- Vertikale Karten
- Nicht unterstützt
- Anhangsnachrichten
- Unterstützt? Ja
- Anhangsaktionen zulässig?: Nein
- Aktionsschaltflächen
- Maximale Länge des globalen Aktionslabels: 20 Zeichen
- Maximale Anzahl globaler Aktionen: 11
- Zulässige globale Aktionen: Postback
Facebook Messenger-Kanalerweiterungen
Für Facebook Messenger-Kanäle können Sie die Funktionalität der Common Response-Komponenten mit speziellen Facebook-Funktionen erweitern.
Sie können auf die Erweiterungen zugreifen, indem Sie das Element channelCustomProperties
in den Metadaten der Common Response-Komponente und die entsprechenden Eigenschaften festlegen. Der Code hat das folgende Format:
...
channelCustomProperties:
- channel: "facebook"
properties:
PROPERTY_NAME: "PROPERTY_VALUE"
...
Nachfolgend finden Sie die verfügbaren benutzerdefinierten Eigenschaften für Facebook Messenger-Kanäle:
Eigenschaftsname | Zulässige Werte | Gültig für... | Beschreibung |
---|---|---|---|
top_element_style |
|
Antwortelemente mit den folgenden Attributen:
|
Bestimmt, wie das Bild der ersten Karte wiedergegeben wird. Weitere Informationen finden Sie unter https://developers.facebook.com/docs/messenger-platform/send-messages/template/list/#cover_image.
Wenn keine Angabe gemacht wird, setzt Oracle Digital Assistant diese Eigenschaft standardmäßig auf |
image_aspect_ratio |
|
Antwortelemente mit den folgenden Attributen:
|
Das Seitenverhältnis zur Wiedergabe von Bildern. Wird standardmäßig auf horizontal (1.91:1) gesetzt. Mit square wird das Seitenverhältnis auf 1:1 gesetzt. Siehe https://developers.facebook.com/docs/messenger-platform/reference/template/generic#attachment |
sharable |
|
Antwortelemente vom Typ cards .
|
Setzen Sie diese Eigenschaft auf true , um die native Teilen-Schaltfläche in Messenger für die Vorlagennachricht zu aktivieren. Wird standardmäßig auf false gesetzt. Siehe https://developers.facebook.com/docs/messenger-platform/reference/template/generic#attachment |
webview_height_ratio |
|
Eine der folgenden Optionen:
|
Höhe der Webview, die geöffnet wird, wenn auf die URL-Schaltfläche oder auf die Höhe der Karte mit der angegebenen URL-Eigenschaft getippt wird. Siehe https://developers.facebook.com/docs/messenger-platform/reference/buttons/url#properties |
messenger_extensions |
|
Eine der folgenden Optionen:
|
Mit Messenger-Erweiterungen können Sie Erfahrungen in der Webview mit der Messenger-Oberfläche integrieren, indem Sie zusätzliche Funktionen in der Webview zugänglich machen. Siehe https://developers.facebook.com/docs/messenger-platform/reference/messenger-extensions-sdk |
fallback_url |
Eine gültige URL | Eine der folgenden Optionen:
|
Die URL für Clients, die Messenger-Erweiterungen nicht unterstützen. Ist diese Eigenschaft nicht definiert, wird url als Fallback verwendet. Sie kann nur angegeben werden, wenn messenger_extensions "true" ist. Siehe https://developers.facebook.com/docs/messenger-platform/reference/buttons/url#properties |
webview_share_button |
|
Eine der folgenden Optionen:
|
Setzen Sie diese Eigenschaft auf hide , um die Teilen-Schaltfläche in der Webview zu deaktivieren (für sensible Informationen). Dies wirkt sich nicht auf Teilen-Vorgänge aus, die vom Entwickler mit Erweiterungen initiiert werden.
|
share_contents |
Das Format entspricht dem in der Facebook Messenger-Sende-API |
|
Die Nachricht, die der Empfänger des geteilten Inhalts sehen soll, wenn sie sich von der Nachricht unterscheidet, an die diese Schaltfläche angehängt ist. Siehe https://developers.facebook.com/docs/messenger-platform/reference/buttons/share#properties |
Nachfolgend finden Sie ein Beispiel für benutzerdefinierte Eigenschaften, die auf Antwortelementebene (top_element_style
) und auf Kartenebene (webview_height_ratio
und fallback_url
) definiert sind:
responseItems:
- type: "cards"
cardLayout: "vertical"
cards:
- title: "${pizzas.name}"
description: "${pizzas.description}"
imageUrl: "${pizzas.image}"
url: "${pizzas.moreInfo}"
iteratorVariable: "pizzas"
channelCustomProperties:
- channel: "facebook"
properties:
webview_height_ratio: "compact"
fallback_url: "http://www.oracle.com"
channelCustomProperties:
- channel: "facebook"
properties:
top_element_style: "large"
...
Allgemeine Informationen zu channelCustomProperties
finden Sie unter Kanalspezifische Erweiterungen.