Що таке постійне меню?

Постійне меню дозволяє відображати постійне меню з основними діями вашого бізнесу, такими як години роботи, розташування магазинів, товари або інші часто використовувані опції. Меню завжди видиме під час розмови з вашим ботом Facebook Messenger.

Підтримувані типи кнопок

Постійне меню підтримує такі типи кнопок:

  • Кнопки URL (web_url)
  • Кнопки зворотного виклику (postback)

Створення постійного меню

Використовуйте наступну функцію для створення постійного меню для сторінки Facebook:

response = fb_set_persistent_menu(group_id, buttons)

Параметри

Параметр Опис
group_id ID бота Facebook. Ви можете знайти його в розділі Канал вашого проекту MaviBot.
buttons Словник, що описує кнопки меню.

Структура словника кнопок

buttons = {
    "default": [
        ["postback", "Кнопка 1", "callback_text 1"],
        ["postback", "Кнопка 2", "callback_text 2"],
        ["web_url", "Веб-сайт", "https://mavibot.ai/"]
    ]
}

Ключ default є обов'язковим. Він визначає кнопки, які відображаються для користувачів, чия локаль не має власного меню.

Кожна кнопка описується масивом:

["button_type", "Текст кнопки", "Значення"]

Підтримувані формати кнопок

Кнопка зворотного виклику

["postback", "Текст кнопки", "callback_text"]
Значення Опис
postback Тип кнопки.
Текст кнопки Текст, що відображається на кнопці.
callback_text Текст, який надсилається боту при натисканні кнопки.

Кнопка URL

["web_url", "Текст кнопки", "https://example.com"]
Значення Опис
web_url Тип кнопки.
Текст кнопки Текст, що відображається на кнопці.
URL Веб-сайт, який відкривається при натисканні кнопки.

Локалізація

Ви можете відображати різні меню залежно від локалі користувача.

Просто додайте додаткові ключі до словника кнопок.

Приклад:

buttons = {
    "default": [
        ["postback", "Кнопка 1", "callback_text 1"],
        ["postback", "Кнопка 2", "callback_text 2"],
        ["web_url", "Веб-сайт", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "Button", "callback_text 1"],
        ["postback", "Button 2", "callback_text 2"],
        ["web_url", "Website", "https://mavibot.ai/"]
    ]
}

У цьому прикладі користувачі з локаллю en_EN отримають інше меню.

Підтримувані локалі

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

Створення постійного меню для конкретного користувача

Щоб створити меню, яке буде видиме лише для користувача, для якого викликається функція, передайте 1 як третій параметр.

response = fb_set_persistent_menu(group_id, buttons, 1)

Примітка

Постійні меню на рівні користувача оновлюються негайно.

Постійні меню на рівні сторінки можуть оновлюватися до 24 годин.

Facebook також обмежує оновлення меню на рівні користувача до 10 запитів на користувача кожні 10 хвилин.


Вимкнення композитора

Ви можете вимкнути композитор Messenger, щоб користувачі могли взаємодіяти з ботом лише через постійне меню.

Це корисно, коли бот повинен дозволяти лише попередньо визначені дії.

Вимкнення композитора для всіх користувачів

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

Вимкнення композитора для конкретного користувача

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

Параметри

Параметр Опис
group_id ID бота Facebook.
buttons Словник кнопок.
3-й параметр Встановіть значення 1, щоб застосувати меню лише до поточного користувача. Залиште порожнім, щоб застосувати до сторінки.
4-й параметр Встановіть значення 1, щоб вимкнути композитор Messenger.

Значення, що повертаються

Якщо функція виконана успішно:

{"result":"success"}

В іншому випадку повертається опис помилки.

Приклад:

Error parse buttons data

або

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

Приклади

Створення меню для всіх користувачів

buttons = {
    "default": [
        ["postback", "Кнопка 1", "callback_text 1"],
        ["postback", "Кнопка 2", "callback_text 2"],
        ["web_url", "Веб-сайт", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "Button", "callback_text 1"],
        ["postback", "Button 2", "callback_text 2"],
        ["web_url", "Website", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons)

Створення меню для всіх користувачів і вимкнення композитора

buttons = {
    "default": [
        ["postback", "Кнопка 1", "callback_text 1"],
        ["postback", "Кнопка 2", "callback_text 2"],
        ["web_url", "Веб-сайт", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "Button", "callback_text 1"],
        ["postback", "Button 2", "callback_text 2"],
        ["web_url", "Website", "https://mavibot.ai/"]
    ]
}

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

Створення меню для поточного користувача

buttons = {
    "default": [
        ["postback", "Кнопка 1", "callback_text 1"],
        ["postback", "Кнопка 2", "callback_text 2"],
        ["web_url", "Веб-сайт", "https://mavibot.ai/"]
    ]
}

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

Створення меню для користувача і вимкнення композитора

buttons = {
    "default": [
        ["postback", "Кнопка 1", "callback_text 1"],
        ["postback", "Кнопка 2", "callback_text 2"],
        ["web_url", "Веб-сайт", "https://mavibot.ai/"]
    ]
}

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

Видалення постійного меню

Видалення меню на рівні сторінки

response = fb_delete_persistent_menu(group_id)

Успішна відповідь:

{"result":"success"}

Можлива помилка:

Bot not found

Видалення меню на рівні користувача

response = fb_delete_persistent_menu(group_id, 1)

Успішна відповідь:

{"result":"success"}

Можлива помилка:

Bot not found