O que é um menu persistente
Um menu persistente permite criar e enviar um menu com as principais funções do seu negócio, como horário de funcionamento, localizações da loja e produtos. Ele estará sempre visível durante a conversa de uma pessoa com sua empresa no Messenger.

Botões suportados:
O menu persistente consiste em um conjunto de botões. Os seguintes tipos de botões são suportados no menu persistente:
● Botões de URL (web_url)
● Botões de callback (postback)
Como adicionar um menu persistente para uma página específica
response = fb_set_persistent_menu("group_id", buttons), onde:
group_id - ID do bot do Facebook (pode ser encontrado no menu "Canal" do MaviBot)
buttons - um dicionário contendo os botões
Exemplo de como estruturar o dicionário de botões:
buttons = {"default": [["postback", "Botão 1", "texto_callback 1"], ["postback", "Botão 2", "texto_callback 2"], ["web_url", "Link do site", "https://mavibot.ai/"]]}
default - uma chave obrigatória que define o array de botões a serem exibidos no menu por padrão, independentemente da localização do usuário.
O valor deve ser um array de botões. Cada botão é descrito como um array separado no seguinte formato:
["tipo_do_botão", "Texto de exibição do botão", "Texto de callback enviado ao bot"]
Tipos de botões e suas descrições:
&#xNAN;- botão de callback:
["postback", "Texto de exibição do botão", "Texto de callback enviado ao bot"]
&#xNAN;- botão de URL:
["web_url", "Texto de exibição do link", "https://example.com"]
Como configurar o menu com base na localização do usuário
Você pode configurar botões para diferentes regiões adicionando chaves extras ao dicionário de botões correspondentes a localidades específicas.
Por exemplo, para adicionar botões para a localidade em inglês:
buttons = {"default": [["postback", "Botão 1", "texto_callback 1"], ["postback", "Botão 2", "texto_callback 2"], ["web_url", "Link do site", "https://mavibot.ai/"]], "en_EN": [["postback", "Botão", "texto_callback 1"], ["postback", "Botão 2", "texto_callback 2"], ["web_url", "Link", "https://mavibot.ai/"]]}
Nota: Neste caso, a chave representa a localidade para a qual os botões serão exibidos.
Localidades suportadas:
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
Como adicionar um menu persistente para um usuário específico
Para fazer isso, defina o terceiro parâmetro da função fb_set_persistent_menu como 1, da seguinte forma: response = fb_set_persistent_menu('group_id', buttons, 1)
Este menu estará disponível para o usuário para o qual a função foi chamada.
NOTA . Atualizar um menu persistente no nível do usuário entra em vigor em tempo real.
No entanto, atualizar um menu persistente no nível da página pode levar até 24 horas.As configurações no nível do usuário são limitadas a uma taxa de 10 chamadas por usuário a cada 10 minutos.
Como desabilitar todas as comunicações, exceto o menu persistente
Para tornar o menu persistente a única forma de um usuário interagir com seu bot do Messenger, você precisa desabilitar o compositor.
Por que você faria isso?
É útil quando seu bot é projetado para um propósito específico ou um conjunto predefinido de opções.
Como fazer isso?
Para desabilitar o compositor, passe 1 como o quarto parâmetro na função:
para desabilitar o compositor no nível da página (para todos os usuários):
response = fb_set_persistent_menu('group_id', buttons, '', 1)
para desabilitar o compositor para o usuário para o qual a função é chamada:
response = fb_set_persistent_menu('group_id', buttons, 1, 1)
onde:
group_id - ID do bot do Facebook (pode ser encontrado no menu "Canal" do MaviBot)
buttons - um dicionário contendo os botões
Se bem-sucedido, a função retorna:
{"result":"success"}
Caso contrário, retorna uma descrição do erro.
'Error parse buttons data' - erro no dicionário de botões
{"error":{"message":"(#100) param persistent_menu[0][call_to_actions] must be non-empty.","type":"OAuthException","code":100,"fbtrace_id":"AJtVczu7TEJJxbMfnO"}}
EXEMPLOS:
Adicionando um menu para todos os usuários:
buttons = {"default": [["postback", "Botão 1", "callback_text 1"], ["postback", "Botão 2", "callback_text 2"], ["web_url", "Link do site", "https://mavibot.ai/"]], "en_EN": [["postback", "Botão", "callback_text 1"], ["postback", "Botão 2", "callback_text 2"], ["web_url", "Link", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons)
Adicionando um menu para todos os usuários e tornando este menu o único método de comunicação para todos:
buttons = {"default": [["postback", "Botão 1", "callback_text 1"], ["postback", "Botão 2", "callback_text 2"], ["web_url", "Link do site", "https://mavibot.ai/"]], "en_EN": [["postback", "Botão", "callback_text 1"], ["postback", "Botão 2", "callback_text 2"], ["web_url", "Link", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons, '', 1)
Adicionando um menu para o usuário que entrou no bloco que chama a função:
buttons = {"default": [["postback", "Botão 1", "callback_text 1"], ["postback", "Botão 2", "callback_text 2"], ["web_url", "Link do site", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons, 1)
Adicionando um menu para o usuário que entrou no bloco que chama a função, e tornando este menu o único método de comunicação para todos os usuários:
buttons = {"default": [["postback", "Botão 1", "callback_text 1"], ["postback", "Botão 2", "callback_text 2"], ["web_url", "Link do site", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons, 1, 1)
Excluir o menu persistente no nível da página (para todos os usuários):
response = fb_delete_persistent_menu('group_id')
Se bem-sucedido, a função retorna:
{"result":"success"}
Caso contrário, retorna uma descrição do erro.
'Bot not found'
Excluir o menu persistente no nível do usuário:
response = fb_delete_persistent_menu('group_id', 1)
Se bem-sucedido, a função retorna:
{"result":"success"}
Caso contrário, retorna uma descrição do erro.
"Bot not found"