Ce document explique comment programmer l’ajout du menu fixe dans votre expérience Messenger.
L’application Messenger from Meta pour Android (versions 276 et ultérieures) ne prendra plus en charge les menus fixes imbriqués. Les Pages contenant des éléments de menu imbriqués s’afficheront sous la forme de listes simples sur toutes les surfaces (web, iOS et Android [versions 276 et ultérieures]). Nous pensons que les utilisateurs et utilisatrices de Messenger bénéficieront ainsi d’une expérience encore plus satisfaisante. Dans la version 8.0 de l’API Graph, les API Messenger Profile et Custom User Settings ne prendront plus en charge les menus imbriqués. Cette modification importante prendra effet sous deux ans pour toutes les versions.
FonctionnementGrâce au menu fixe, vous pouvez créer et envoyer un menu contenant les principales caractéristiques de votre entreprise (comme les heures d’ouverture, les adresses de vos magasins et les produits que vous proposez), qui sera toujours visible dans la conversation Messenger que vous entretenez avec une personne. Quand quelqu’un clique sur un élément du menu, une notification webhook |
Si des Commandes sont définies, elles seront prioritaires sur le menu fixe.
Pour que le menu fixe apparaisse, les conditions suivantes doivent être vérifiées :
pages_messaging
.Le menu fixe se compose d’un ensemble de boutons. Les types de boutons suivants sont pris en charge dans le menu fixe :
web_url
: indique que l’élément est un bouton d’URL.postback
: indique que l’élément est un bouton de renvoi.Pour configurer le menu fixe, envoyez une requête POST
à l’API Messenger Profile pour définir la propriété persistent_menu
du profil de votre bot Messenger.
Pour remplacer le menu imbriqué devenu obsolète, nous autorisons jusqu’à 20 boutons dans l’ensemble call_to_actions
de l’API Graph 8.0 et versions ultérieures.
{
"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"
}
]
}
]
}
Cette fonctionnalité n’est plus prise en charge dans la version 8.0 et les versions ultérieures.
Vous pouvez désactiver l’éditeur pour faire du menu fixe l’unique manière d’interagir avec votre bot Messenger. Cette opération est utile si un objectif ou un ensemble précis d’options est défini pour votre bot.
Pour ce faire, définissez "composer_input_disabled":true
lorsque vous créez le menu fixe.
Vous pouvez définir le texte par défaut d’un bouton du menu fixe, ainsi que sa traduction. Ce texte s’affichera en fonction des paramètres régionaux de l’utilisateur·ice.
Pour cela, spécifiez un objet distinct dans l’ensemble persistent_menu
pour chaque paramètre régional. Pour spécifier le paramètre régional de chaque objet, définissez la propriété locale
sur un paramètre régional pris en charge:
{
"locale":"default",
"call_to_actions":[...]
},
{
"locale: "zh_CN",
"call_to_actions":[...]
}
Le 4 décembre 2019, nous avons apporté des améliorations au menu fixe en prenant en charge les modifications dynamiques afin de personnaliser les conversations.
Vous pouvez remplacer le menu fixe au niveau Page par un paramètre au niveau utilisateur. Votre application pourra ainsi contrôler de manière dynamique les éléments suivants :
Un autre point de terminaison intitulé custom_user_settings
est utilisé pour activer ou désactiver le paramètre au niveau utilisateur. Ce point de terminaison prend en charge les appels POST, GET et DELETE.
Les configurations existantes pour le menu fixe au niveau Page s’appliquent au niveau utilisateur. La principale différence réside dans le fait qu’un paramètre psid
est nécessaire pour indiquer l’utilisateur ou l’utilisatrice concerné·e par ce remplacement.
REMARQUE : la mise à jour du menu fixe au niveau utilisateur s’effectue en temps réel tandis que la mise à jour du menu fixe au niveau Page peut prendre jusqu’à 24 heures.
Les paramètres au niveau utilisateur sont limités à 10 appels par utilisateur·ice toutes les 10 minutes.
Cette requête permettra de remplacer les paramètres actuels au niveau Page pour cet utilisateur•ou cette utilisatrice.
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>"
Cette requête permet de récupérer les paramètres actuels au niveau Page et utilisateur. S’il n’existe aucun paramètre au niveau utilisateur, seuls les paramètres au niveau Page sont renvoyés.
curl -X GET "https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>&access_token=<PAGE_ACCESS_TOKEN>"
Résultat
{ "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... ] } ] }
Cette requête permet de supprimer les paramètres au niveau de l’utilisateur·ice sans toucher au menu au niveau de la Page, s’il est défini.
curl -X DELETE 'https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>¶ms=[%22persistent_menu%22]&access_token=<PAGE_ACCESS_TOKEN>'
Dans certains cas, il convient de désactiver le menu fixe de votre bot dans le plugin de discussion. Pour ce faire, ajoutez "disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"]
lors de la configuration de votre menu fixe :
{
"persistent_menu":[
{
"locale":"default",
"disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"],
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"My Account",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
}
]
}
]
}
De même que les boutons, les éléments de menu peuvent entraîner une webview ou un renvoi. Gardez à l’esprit que le menu de second niveau n’est pas pris en charge.
Utilisez le menu comme des points d’entrée dans les fonctionnalités de votre bot.
Choisissez des libellés clairs pour les boutons : c’est grâce au menu que les utilisateur·ices découvriront les fonctionnalités de votre bot. Ce menu leur indique instantanément à quoi le bot pourra leur être utile à l’avenir.
Choisissez avec soin les principales fonctions de votre bot et essayez de limiter le nombre d’éléments de menu à 5 pour une expérience d’utilisation optimale.
Ne prévoyez pas d’inclure des données spécifiques aux utilisateur·ices dans le menu : bien qu’il puisse être localisé, il est identique pour toutes les personnes qui l’utilisent.
N’incluez pas dans le menu un bouton « Menu » destiné à envoyer à l’utilisateur·ice un message contenant un menu. Il vous suffit d’inclure ce contenu directement dans le menu : c’est à cela qu’il sert !
N’incluez pas d’actions génériques telles que « redémarrer » dans le menu.
N’utilisez pas la place dont vous disposez dans le menu principal pour des informations secondaires de type « colophon » sur les conditions d’utilisation, la politique de confidentialité, la mention « conçu par », au détriment des fonctionnalités principales de votre bot.