Facebook Messenger
-
Einen Facebook-Account für Entwickler
-
Eine Facebook-App
-
Eine Facebook-Seite
-
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 die Facebook-App, die Sie für den Kanal verwenden:
- Gehen Sie in Ihrem Browser zu https://developers.facebook.com/apps/.
- Wählen Sie die Registerkarte Meine Apps aus, und klicken Sie auf App erstellen.
- Geben Sie auf der Seite App-Details des Assistenten "App erstellen" den Namen, den Sie für die App verwenden möchten, und die E-Mail-Adresse ein, die Sie als Kontakt für die App verwenden möchten. Klicken Sie anschließend auf Weiter.
- Wählen Sie auf der Seite Anwendungsfälle unter Filtern nach die Option Business Messaging aus. Wählen Sie dann Mit Kunden in Messenger über Meta interagieren aus, und klicken Sie auf Weiter.
- Klicken Sie durch die restlichen Seiten im Assistenten, und klicken Sie dann auf der Seite Überblick auf App erstellen.
- Nachdem die App erstellt wurde, wählen Sie die App (links auf der Seite "Meine Apps") aus, und wählen Sie im Abschnitt App-Einstellungen die Option Einfach aus.
- Kopieren Sie den Wert des Feldes App Secret, und fügen Sie ihn an einer geeigneten Stelle in Ihrem System ein.
Sie benötigen das App Secret später, um die Facebook-Kanalkonfiguration abzuschließen.
- Klicken Sie im Abschnitt App-Seite auf Neue Seite erstellen.
- Füllen Sie auf der Seite Seite erstellen die erforderlichen Felder aus, und klicken Sie auf Seite erstellen.
Hinweis
Der Seitenname muss den Anwendungsnamen enthalten. - Generieren Sie ein Zugriffstoken:
- Wählen Sie Extras > Graph API Explorer aus.
- Wählen Sie im Abschnitt Zugriffstoken der Seite unter Meta-App den Namen Ihrer App aus.
- Wählen Sie im Feld Benutzer oder Seite die Option Token abrufen aus.
- Klicken Sie im Abschnitt Berechtigungen auf Berechtigung hinzufügen, und wählen Sie die folgenden Berechtigungen aus:
business_managementpages_manage_metadatapages_messagingpages_show_list
- Klicken Sie auf Zugriffstoken generieren.
- 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.
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 Facebook Messenger als Kanaltyp aus.
-
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
Definieren Sie in Facebook Messenger die Callback-URL mit der Webhook-URL, die im vorherigen Schritt in Digital Assistant generiert wurde.
- Gehen Sie in der Facebook Messenger-Konsole zu dem Projekt, das Sie ursprünglich für den Webhook erstellt haben.
- Wählen Sie Messenger-API-Einstellungen aus, um die Seite "Messenger-API-Setup" zu öffnen.
- Fügen Sie im Feld CallBack-URL die Webhook-URL ein, die Sie von der Seite "Digital Assistant-Kanäle" erhalten haben.
- Fügen Sie in der Messenger-Konsole im Feld Token verifizieren das Token auf der Seite "Kanäle des digitalen Assistenten" ein.
- Wählen Sie im Abschnitt Webhook-Felder die Callback-Ereignisse Nachrichten und messaging_postbacks aus.
- Klicken Sie auf Verify and Save.
- Abonnieren Sie die Seite:
- Wählen Sie auf der Seite "Messenger-API-Setup" im Abschnitt Zugriffstoken generieren die Facebook-Seite für Ihren Kanal aus.
- Klicken Sie auf Abonnement hinzufügen.
- Prüfen Sie im Dialogfeld "Seitenabonnements bearbeiten", ob Nachrichten und messaging_postbacks ausgewählt sind, und klicken Sie auf Bestätigen.
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 die Konfiguration des Facebook-Kanals und des Messaging abgeschlossen ist, können Sie Ihren Bot mit Ihrer Facebook-Seite, Facebook Messenger (https://www.messenger.com/) und der Facebook Messenger-App auf Ihrem Gerät testen.
- Gehen Sie zu
https://www.messenger.com/. - Geben Sie in der Messenger-Oberfläche den Namen Ihrer Seite ein, um nach der Seite zu suchen.
- Beginnen Sie mit dem Chatten mit Ihrem digitalen Assistenten (oder Standalone-Skill).
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.
