API Facebook*
*На территории Российской Федерации запрещена деятельность социальных сетей Facebook и Instagram, принадлежащих компании Meta Platforms Inc., признанная экстремистской!
Что такое постоянное меню

Постоянное меню позволяет создавать и отправлять меню основных функций вашего бизнеса, таких, как часы работы, расположение магазинов и продукты, которые всегда отображаются в разговоре человека с вашей компанией в Messenger.
Поддерживаемые кнопки:
Постоянное меню состоит из набора кнопок . В постоянном меню поддерживаются следующие типы кнопок: ● кнопки-ссылки URL (web_url) ● колбек-кнопки (postback)
Добавление меню постоянного на уровне страницы
response = fb_set_persistent_menu("group_id", buttons)
где: group_id - идентификатор бота в facebook, можно посмотреть в меню Каналы в сейлбот buttons - словарь с кнопками
Пример оформления словаря с кнопками: buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]]}
default - обязательный ключ, описывает массив кнопок, которые будут в меню по умолчанию, не зависимо от локализации пользователя. В качестве значения указывается массив с кнопками. Каждая кнопка описывается отдельным массивом: ["тип кнопки", "Отображаемый текст кнопки", "Текст, который придет в бот - callback"]
Типы кнопок и их описание: - колбек-кнопки postback: ["postback", "Отображаемый текст кнопки", "Текст, который придет в бот"] - кнопки-ссылки web_url ["web_url", "Отображаемый текст ссылки", "Ссылка"]
Как настроить меню с учетом локализации клиента
Настроить кнопки отдельно для разных регионов можно, используя для этого дополнительный ключ в словаре кнопок.
Например, добавим кнопки для русской локали:
buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]], "ru_RU": [["postback", "Кнопа", "callback_text 1"], ["postback", "Кнопа 2", "callback_text 2"], ["web_url", "Ссылка", "https://salebot.pro/"]]}
Обратите внимание, что в данном случае ключ - это локаль, для которой будут отображаться кнопки.
Список всех доступных локалей: 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)
Это меню будет доступно пользователю, для которого была вызвана функция.
Как отключить все коммуникации, кроме постоянного меню
Для того, чтобы постоянное меню было единственным способом взаимодействия человека с вашим ботом Messenger, необходимо отключить композитор. Для чего это может быть нужно? Это полезно, если ваш бот направлен на конкретную цель или набор параметров.
Как это сделать? Для этого в функцию нужно передать в качестве четвертого параметра цифру 1: - отключить композитор на уровне страницы (для всех пользователей): response = fb_set_persistent_menu('group_id', buttons, '', 1) - отключить композитор для пользователя, для которого вызвана функция: response = fb_set_persistent_menu('group_id', buttons, 1, 1) где: group_id - идентификатор бота в Facebook*, можно посмотреть в меню Каналы в Salebot 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://salebot.ai/"]], "ru_RU": [["postback", "Кнопа", "callback_text 1"], ["postback", "Кнопа 2", "callback_text 2"], ["web_url", "Ссылка", "https://salebot.pro/"]]}
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://salebot.ai/"]], "ru_RU": [["postback", "Кнопа", "callback_text 1"], ["postback", "Кнопа 2", "callback_text 2"], ["web_url", "Ссылка", "https://salebot.pro/"]]}
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://salebot.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://salebot.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'
Last updated
Was this helpful?