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

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

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

Постійне меню складається з набору кнопок. У постійному меню підтримуються такі типи кнопок:

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

Як додати постійне меню для конкретної сторінки

response = fb_set_persistent_menu("group_id", buttons), де:
group_id - ID бота Facebook (можна знайти в меню "Channel" MaviBot)
buttons - словник, що містить кнопки

Приклад структури словника кнопок:
buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://mavibot.ai/"]]}

default - обов'язковий ключ, який визначає масив кнопок, що відображатимуться в меню за замовчуванням, незалежно від локалізації користувача.
Значенням має бути масив кнопок. Кожна кнопка описується окремим масивом у такому форматі:
["button_type", "Button display text", "Callback text sent to the bot"]

Типи кнопок та їх опис:
&#xNAN;- кнопка зворотного виклику:
["postback", "Button display text", "Callback text sent to the bot"]
&#xNAN;- кнопка URL:
["web_url", "Link display text", "https://example.com"]

Як налаштувати меню на основі локалізації користувача

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

Наприклад, щоб додати кнопки для англійської локалі:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://mavibot.ai/"]], "en_EN": [["postback", "Button", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Link", "https://mavibot.ai/"]]}

Примітка: У цьому випадку ключ представляє локаль, для якої будуть відображатися кнопки.

Підтримувані локалі:
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

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

Для цього встановіть третій параметр функції fb_set_persistent_menu на 1, наприклад: response = fb_set_persistent_menu('group_id', buttons, 1)

Це меню буде доступне користувачеві, для якого була викликана функція.

ПРИМІТКА . Оновлення постійного меню на рівні користувача набуває чинності в реальному часі.

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

Налаштування на рівні користувача обмежені частотою 10 викликів на користувача кожні 10 хвилин.

Як вимкнути всі комунікації, крім постійного меню

Щоб зробити постійне меню єдиним способом взаємодії користувача з вашим ботом Messenger, потрібно вимкнути композитор.

Навіщо це робити?

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

Як це зробити?

Щоб вимкнути композитор, передайте 1 як четвертий параметр у функції:

щоб вимкнути композитор на рівні сторінки (для всіх користувачів):
response = fb_set_persistent_menu('group_id', buttons, '', 1)
щоб вимкнути композитор для користувача, для якого викликається функція:
response = fb_set_persistent_menu('group_id', buttons, 1, 1)
де:
group_id - ID бота Facebook (можна знайти в меню "Channel" MaviBot)
buttons - словник, що містить кнопки

У разі успіху функція повертає:
{"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", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://mavibot.ai/"]], "en_EN": [["postback", "Button", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Link", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons)

Додавання меню для всіх користувачів і зробити це меню єдиним способом комунікації для всіх:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://mavibot.ai/"]], "en_EN": [["postback", "Button", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Link", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons, '', 1)

Додавання меню для користувача, який увійшов у блок, що викликає функцію:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons, 1)

Додавання меню для користувача, який увійшов у блок, що викликає функцію, і зробити це меню єдиним способом комунікації для всіх користувачів:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "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"