In diesem Dokument erfährst du, wie du das beständige Menü programmgesteuert zu deinem Messaging-Erlebnis hinzufügst.
Die Android-Messenger-App (Version 276 und höher) unterstützt keine verschachtelten beständigen Menüs mehr. Seiten mit verschachtelten Menüelementen werden auf allen Oberflächen (Web, iOS und Android (Version 276 und höher)) als einfache Listen gerendert. Wir sind der Meinung, dass sich damit ein noch besseres Messenger-Erlebnis schaffen lässt. Die Unterstützung verschachtelter Menüs wird in Version 8.0 der Graph API von der Messenger Profile API und Custom User Settings API entfernt. Dabei besteht eine Frist von 2 Jahren bis zur Funktionsgefährdung für alle Versionen.
So funktioniert’sMit dem beständigen Menü kannst du ein Menü mit den Hauptfunktionen für dein Unternehmen erstellen und senden. Das können z. B. die Geschäftszeiten, die Speicherorte und Produkte sein. Das Menü wird dann dauerhaft in der Messenger-Unterhaltung einer Person mit deinem Unternehmen angezeigt. Wenn eine Person auf ein Element im Menü klickt, wird an deinen Server eine |
Wenn Befehle festgelegt sind, haben sie Vorrang vor dem beständigen Menü.
Folgendes muss zutreffen, damit das beständige Menü erscheint:
pages_messaging
-Berechtigung aufweisen.Das beständige Menü besteht aus einem Array von Buttons. Die folgenden Button-Arten werden im beständigen Menü unterstützt:
web_url
: Gibt an, ob das Element ein URL-Button ist.postback
: Gibt an, ob das Element ein Postback-Button ist.Um das beständige Menü einzurichten, sende eine POST
-Anfrage an die Messenger Profile API, um die persistent_menu
-Eigenschaft des Messenger-Profils deines Bots festzulegen.
Um die veralteten verschachtelten Menüebenen zu ersetzen, lassen wir bis zu 20 Buttons im call_to_actions
-Array für Graph API Version 8.0 und höher zu.
{
"persistent_menu": [
{
"locale": "default",
"composer_input_disabled": false,
"call_to_actions": [
{
"type": "postback",
"title": "Talk to an agent",
"payload": "CARE_HELP"
},
{
"type": "postback",
"title": "Outfit suggestions",
"payload": "CURATION"
},
{
"type": "web_url",
"title": "Shop now",
"url": "https://www.originalcoastclothing.com/",
"webview_height_ratio": "full"
}
]
}
]
}
Dieses Feature ist in Version 8.0 und höher veraltet.
Du kannst das Eingabefeld deaktivieren, damit das beständige Menü die einzige Möglichkeit zur Interaktion mit deinem Messenger-Bot ist. Das bietet sich vor allem dann an, wenn dein Bot einen ganz bestimmten Zweck oder bestimmte Optionen hat.
Lege dazu "composer_input_disabled":true
beim Erstellen des beständigen Menüs fest.
Du kannst standardmäßigen und lokalisierten Button-Text für das beständige Menü angeben, der je nach der Ländereinstellung einer Person angezeigt wird.
Gib dazu ein separates Objekt im persistent_menu
-Array für jede Sprache an. Um die Sprache für jedes Objekt anzugeben, setze die locale
-Eigenschaft auf eine unterstützte Sprache:
{
"locale":"default",
"call_to_actions":[...]
},
{
"locale: "zh_CN",
"call_to_actions":[...]
}
Am 04. Dezember 2019 haben wir das beständige Menü verbessert, um dynamische Änderungen zu unterstützen. So werden Unterhaltungen noch persönlicher.
Du kannst das beständige Menü auf Seitenebene mit einer Einstellung auf Nutzerebene außer Kraft setzen. Dann kann deine App die folgenden Elemente dynamisch steuern:
Zum Aktivieren oder Deaktivieren der Einstellung auf Nutzerebene wird ein eigener Endpunkt namens custom_user_settings
verwendet. Dieser Endpunkt unterstützt POST-, GET- und DELETE-Aufrufe.
Dieselben Konfigurationen, die für das beständige Menü auf Seitenebene verfügbar sind, gelten auch auf Nutzerebene. Der Hauptunterschied besteht darin, dass du mit einem psid
-Parameter den*die Nutzer*in angeben musst, für welche*n diese Spezialeinstellung gilt.
HINWEIS: Die Aktualisierung des beständigen Menüs auf Nutzerebene erfolgt in Echtzeit. Die Aktualisierung des beständigen Menüs auf Seitenebene kann jedoch bis zu 24 Stunden dauern.
Für Einstellungen auf Nutzerebene gilt eine Ratenbegrenzung von 10 Aufrufen pro Nutzer*in pro 10 Minuten.
Damit setzt du die aktuellen Einstellungen auf Seitenebene für diese*n Nutzer*in außer Kraft.
curl -X POST -H "Content-Type: application/json" -d '{
"psid": "<PSID>",
"persistent_menu": [
{
"locale": "default",
"composer_input_disabled": false,
"call_to_actions": [
{
"type": "postback",
"title": "Talk to an agent",
"payload": "CARE_HELP"
},
{
"type": "postback",
"title": "Outfit suggestions",
"payload": "CURATION"
},
{
"type": "web_url",
"title": "Shop now",
"url": "https://www.originalcoastclothing.com/",
"webview_height_ratio": "full"
}
]
}
]
}' "https://graph.facebook.com/v21.0
/me/custom_user_settings?access_token=<PAGE_ACCESS_TOKEN>"
Damit rufst du die aktuellen Einstellungen auf Nutzer- und Seitenebene ab. Wenn es keine Einstellungen auf Nutzerebene gibt, werden nur diejenigen der Seitenebene zurückgegeben.
curl -X GET "https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>&access_token=<PAGE_ACCESS_TOKEN>"
Ergebnis
{ "data": [ { "user_level_persistent_menu": [ { "locale": "default", "composer_input_disabled": false, "call_to_actions": [ { "type": "postback", "title": "Talk to an agent", "payload": "CARE_HELP" }, { "type": "postback", "title": "Outfit suggestions", "payload": "CURATION" }, { "type": "web_url", "title": "Shop now", "url": "https://www.originalcoastclothing.com/", "webview_height_ratio": "full" } ] } ], "page_level_persistent_menu": [ Original Page Menu... ] } ] }
Damit entfernst du die Einstellungen auf Nutzerebene, während das Menü auf Seitenebene, falls vorhanden, bestehen bleibt.
curl -X DELETE 'https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>¶ms=[%22persistent_menu%22]&access_token=<PAGE_ACCESS_TOKEN>'
In manchen Fällen ist es von Vorteil, das beständige Menü für deinen Bot im Chat-Plugin zu deaktivieren. Füge dazu beim Einrichten deines beständigen Menüs "disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"]
hinzu:
{
"persistent_menu":[
{
"locale":"default",
"disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"],
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"My Account",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
}
]
}
]
}
Menüelemente können genauso wie Buttons zu einer Webansicht oder einem Postback führen. Beachte, dass keine untergeordneten Menüs unterstützt werden.
Verwende das Menü für Einstiegspunkte in die Funktionen deines Bots.
Achte darauf, dass dein Menü die Funktionen deines Bots klar beschreibt. Nutzer*innen wissen dann ganz genau, wofür sie deinen Bot in Zukunft verwenden können.
Nimm auch wirklich nur die Kernfunktionen deines Bots in das Menü auf. Für die beste Nutzungserfahrung verwendest du am besten nicht mehr als 5 Menüelemente.
Das Menü enthält keine nutzerspezifischen Daten. Es ist für alle Nutzer*innen deines Bots gleich, kann aber lokalisiert werden.
Verwende keinen „Menü“-Button im Menü, der Nutzer*innen eine Nachricht mit einem Menü sendet. Platziere den Inhalt einfach direkt im Menü – dazu ist es ja da.
Platziere keine generischen Handlungen, wie „Neu starten“, im Menü.
Verwende den wertvollen Platz im Menü nicht für sekundäre Informationen im Stile eines Impressums, wie Nutzungsbedingungen, Datenrichtlinien oder „Powered by“, anstatt die Hauptfunktionen deines Bots zu erklären.