Qu'est-ce qu'un menu persistant ?

Un menu persistant vous permet d'afficher un menu permanent avec les actions principales de votre entreprise, telles que les horaires d'ouverture, les emplacements des magasins, les produits ou d'autres options fréquemment utilisées. Le menu est toujours visible lors d'une conversation avec votre bot Messenger Facebook.

Types de boutons pris en charge

Le menu persistant prend en charge les types de boutons suivants :

  • Boutons URL (web_url)
  • Boutons de rappel (postback)

Créer un menu persistant

Utilisez la fonction suivante pour créer un menu persistant pour une page Facebook :

response = fb_set_persistent_menu(group_id, buttons)

Paramètres

Paramètre Description
group_id Identifiant du bot Facebook. Vous pouvez le trouver dans la section Canal de votre projet MaviBot.
buttons Dictionnaire décrivant les boutons du menu.

Structure du dictionnaire des boutons

buttons = {
    "default": [
        ["postback", "Bouton 1", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ]
}

La clé default est obligatoire. Elle définit les boutons affichés pour les utilisateurs dont la langue n'a pas de menu personnalisé.

Chaque bouton est décrit par un tableau :

["type_bouton", "Texte du bouton", "Valeur"]

Formats de boutons pris en charge

Bouton de rappel

["postback", "Texte du bouton", "texte_rappel"]
Valeur Description
postback Type de bouton.
Texte du bouton Texte affiché sur le bouton.
texte_rappel Texte envoyé au bot lorsque le bouton est cliqué.

Bouton URL

["web_url", "Texte du bouton", "https://exemple.com"]
Valeur Description
web_url Type de bouton.
Texte du bouton Texte affiché sur le bouton.
URL Site Web ouvert lorsque le bouton est cliqué.

Localisation

Vous pouvez afficher différents menus en fonction de la langue de l'utilisateur.

Ajoutez simplement des clés supplémentaires au dictionnaire des boutons.

Exemple :

buttons = {
    "default": [
        ["postback", "Bouton 1", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "Bouton", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ]
}

Dans cet exemple, les utilisateurs avec la langue en_EN recevront un menu différent.

Langues prises en charge

af_ZA, ar_AR, as_IN, az_AZ, be_BY, bg_BG, bn_IN, br_FR, bs_BA, ca_ES,
cb_IQ, co_FR, cs_CZ, cx_PH, cy_GB, da_DK, de_DE, el_GR, en_GB, en_UD,
en_US, es_ES, es_LA, et_EE, eu_ES, fa_IR, ff_NG, fi_FI, fo_FO, fr_CA,
fr_FR, fy_NL, ga_IE, gl_ES, gn_PY, gu_IN, ha_NG, he_IL, hi_IN, hr_HR,
hu_HU, hy_AM, id_ID, is_IS, it_IT, ja_JP, ja_KS, jv_ID, ka_GE, kk_KZ,
km_KH, kn_IN, ko_KR, ku_TR, lt_LT, lv_LV, mg_MG, mk_MK, ml_IN, mn_MN,
mr_IN, ms_MY, mt_MT, my_MM, nb_NO, ne_NP, nl_BE, nl_NL, nn_NO, or_IN,
pa_IN, pl_PL, ps_AF, pt_BR, pt_PT, qz_MM, ro_RO, ru_RU, rw_RW, sc_IT,
si_LK, sk_SK, sl_SI, so_SO, sq_AL, sr_RS, sv_SE, sw_KE, sz_PL, ta_IN,
te_IN, tg_TJ, th_TH, tl_PH, tr_TR, tz_MA, uk_UA, ur_PK, uz_UZ, vi_VN,
zh_CN, zh_HK, zh_TW

Créer un menu persistant pour un utilisateur spécifique

Pour créer un menu visible uniquement par l'utilisateur pour lequel la fonction est appelée, passez 1 comme troisième paramètre.

response = fb_set_persistent_menu(group_id, buttons, 1)

Remarque

Les menus persistants au niveau de l'utilisateur sont mis à jour immédiatement.

Les menus persistants au niveau de la page peuvent prendre jusqu'à 24 heures pour être mis à jour.

Facebook limite également les mises à jour des menus au niveau de l'utilisateur à 10 requêtes par utilisateur toutes les 10 minutes.


Désactiver le composeur

Vous pouvez désactiver le composeur Messenger afin que les utilisateurs puissent interagir avec le bot uniquement via le menu persistant.

Cela est utile lorsque le bot ne doit autoriser que des actions prédéfinies.

Désactiver le composeur pour tous les utilisateurs

response = fb_set_persistent_menu(group_id, buttons, "", 1)

Désactiver le composeur pour un utilisateur spécifique

response = fb_set_persistent_menu(group_id, buttons, 1, 1)

Paramètres

Paramètre Description
group_id Identifiant du bot Facebook.
buttons Dictionnaire des boutons.
3ème paramètre Définir sur 1 pour appliquer le menu uniquement à l'utilisateur actuel. Laisser vide pour l'appliquer à la page.
4ème paramètre Définir sur 1 pour désactiver le composeur Messenger.

Valeurs de retour

Si la fonction s'exécute avec succès :

{"result":"success"}

Sinon, une description de l'erreur est renvoyée.

Exemple :

Erreur lors de l'analyse des données des boutons

ou

{
  "error": {
    "message": "(#100) param persistent_menu[0][call_to_actions] must be non-empty.",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "AJtVczu7TEJJxbMfnO"
  }
}

Exemples

Créer un menu pour tous les utilisateurs

buttons = {
    "default": [
        ["postback", "Bouton 1", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "Bouton", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons)

Créer un menu pour tous les utilisateurs et désactiver le composeur

buttons = {
    "default": [
        ["postback", "Bouton 1", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "Bouton", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons, "", 1)

Créer un menu pour l'utilisateur actuel

buttons = {
    "default": [
        ["postback", "Bouton 1", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons, 1)

Créer un menu utilisateur et désactiver le composeur

buttons = {
    "default": [
        ["postback", "Bouton 1", "texte_rappel 1"],
        ["postback", "Bouton 2", "texte_rappel 2"],
        ["web_url", "Site Web", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons, 1, 1)

Supprimer un menu persistant

Supprimer le menu au niveau de la page

response = fb_delete_persistent_menu(group_id)

Réponse réussie :

{"result":"success"}

Erreur possible :

Bot non trouvé

Supprimer un menu au niveau de l'utilisateur

response = fb_delete_persistent_menu(group_id, 1)

Réponse réussie :

{"result":"success"}

Erreur possible :

Bot non trouvé