En estos documentos, se muestra cómo añadir programáticamente el menú persistente a tu experiencia de mensajería.
Messenger from Meta para Android (versión 276 o posterior) dejará de ser compatible con los menús persistentes anidados. Las páginas que contienen elementos de menú anidados no se renderizarán como listas simples en todas las superficies (web, iOS y la versión 276 o posterior de Android). Creemos que esto optimizará aún más la experiencia de las personas en Messenger. Se eliminará la compatibilidad de los menús anidados de la API de perfiles de Messenger y de la API de configuración de usuario de cliente en la versión 8.0 de la API Graph, con un cambio radical para todas las versiones en 2 años.
Cómo funcionaEl menú persistente te permite crear y enviar un menú con las principales características de tu negocio, como horas de operación, ubicaciones de las tiendas y productos. Este menú está siempre visible en la conversación de Messenger de una persona con tu negocio. Cuando una persona hace clic en un elemento del menú, se envía una notificación del webhook |
Si se configuran comandos, estos tendrán prioridad sobre el menú persistente.
Para que se muestre el menú persistente, se deben cumplir las siguientes condiciones:
pages_messaging
.El menú persistente se compone de una matriz de botones. Se admiten los siguientes tipos de botones en el menú persistente:
web_url
: especifica que el elemento es un botón de URL.postback
: especifica que el elemento es un botón de postback.Para configurar el menú persistente, envía una solicitud POST
a la API de perfiles de Messenger para configurar la propiedad persistent_menu
del perfil de Messenger de tu bot.
Como reemplazo del menú de nivel anidado obsoleto, permitimos utilizar hasta 20 botones en la matriz call_to_actions
para la versión 8.0 o posterior de la API Graph.
{
"persistent_menu": [
{
"locale": "default",
"composer_input_disabled": false,
"call_to_actions": [
{
"type": "postback",
"title": "Talk to an agent",
"payload": "CARE_HELP"
},
{
"type": "postback",
"title": "Outfit suggestions",
"payload": "CURATION"
},
{
"type": "web_url",
"title": "Shop now",
"url": "https://www.originalcoastclothing.com/",
"webview_height_ratio": "full"
}
]
}
]
}
Esta opción quedó obsoleta en la versión 8.0 o posterior.
También tienes la opción de desactivar el editor para que el menú persistente sea la única manera que tenga el usuario de interactuar con tu bot de Messenger. Esto es útil si tu bot tiene un propósito o un conjunto de opciones muy específicos.
Para ello, configura "composer_input_disabled":true
cuando crees el menú persistente.
Puedes usar texto predeterminado o localizado en los botones del menú persistente, que se mostrará según la configuración regional de las personas.
Para hacerlo, especifica otro objeto en la matriz persistent_menu
para la configuración regional. A fin de especificar la configuración regional de cada objeto, establece un idioma admitido para la propiedad locale
:
{
"locale":"default",
"call_to_actions":[...]
},
{
"locale: "zh_CN",
"call_to_actions":[...]
}
El 4 de diciembre de 2019 introdujimos mejoras al menú persistente para ayudar a los cambios dinámicos en el nivel del usuario a fin de seguir personalizando la experiencia de conversación.
Puedes reemplazar el menú persistente en el nivel de la página con una configuración de nivel del usuario, lo que permite que tu app controle lo siguiente de manera dinámica:
Para activar o desactivar la configuración de nivel del usuario, se utiliza un punto de conexión diferente denominado custom_user_settings
. Este punto de conexión admite llamadas POST, GET y DELETE.
Las mismas configuraciones disponibles para el menú persistente de nivel de la página se aplican al nivel del usuario. La principal diferencia es que se necesita un parámetro psid
para indicar el usuario al que se aplica este reemplazo.
NOTA: La actualización del menú persistente de nivel del usuario se efectúa en tiempo real, mientras que la actualización del menú persistente de nivel de la página puede demorar hasta 24 horas.
La configuración del nivel del usuario tiene un límite de frecuencia de 10 llamadas por usuario durante 10 minutos.
Sobrescribirá la configuración de nivel de la página actual para este usuario.
curl -X POST -H "Content-Type: application/json" -d '{
"psid": "<PSID>",
"persistent_menu": [
{
"locale": "default",
"composer_input_disabled": false,
"call_to_actions": [
{
"type": "postback",
"title": "Talk to an agent",
"payload": "CARE_HELP"
},
{
"type": "postback",
"title": "Outfit suggestions",
"payload": "CURATION"
},
{
"type": "web_url",
"title": "Shop now",
"url": "https://www.originalcoastclothing.com/",
"webview_height_ratio": "full"
}
]
}
]
}' "https://graph.facebook.com/v21.0
/me/custom_user_settings?access_token=<PAGE_ACCESS_TOKEN>"
Recuperará la configuración actual de nivel de la página y del usuario. Si no existe una configuración de nivel del usuario, solo se devolverán las del nivel de la página.
curl -X GET "https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>&access_token=<PAGE_ACCESS_TOKEN>"
Resultado
{ "data": [ { "user_level_persistent_menu": [ { "locale": "default", "composer_input_disabled": false, "call_to_actions": [ { "type": "postback", "title": "Talk to an agent", "payload": "CARE_HELP" }, { "type": "postback", "title": "Outfit suggestions", "payload": "CURATION" }, { "type": "web_url", "title": "Shop now", "url": "https://www.originalcoastclothing.com/", "webview_height_ratio": "full" } ] } ], "page_level_persistent_menu": [ Original Page Menu... ] } ] }
Eliminará la configuración de nivel del usuario, pero dejará el menú de nivel de la página, siempre que se encuentre configurado.
curl -X DELETE 'https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>¶ms=[%22persistent_menu%22]&access_token=<PAGE_ACCESS_TOKEN>'
En algunos casos, puede ser preferible desactivar el menú persistente del bot en el plugin de chat. Para hacerlo, agrega "disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"]
cuando configures el menú persistente:
{
"persistent_menu":[
{
"locale":"default",
"disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"],
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"My Account",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
}
]
}
]
}
Al igual que los botones, los elementos del menú pueden generar una vista web o un postback. Ten en cuenta que no se admiten menús de segundo nivel.
Usa el menú para crear puntos de entrada a las funciones de tu bot.
Sé descriptivo: el menú brinda a las personas información sobre lo que puede hacer tu bot. De esta manera, los usuarios pueden saber inmediatamente para qué pueden contactar a tu bot en el futuro.
Sé selectivo a la hora de mostrar las funciones principales de tu bot: limita los elementos del menú a 5 para ofrecer la mejor experiencia de usuario.
No esperes que el menú contenga datos específicos del usuario, ya que, si bien se puede localizar, será el mismo para todas las personas que usen tu bot.
No coloques un botón "Menú" en el menú que envíe al usuario un mensaje que contenga un menú. Coloca directamente el contenido en el menú; esa es la finalidad.
No agregues acciones genéricas (como "Reiniciar") en el menú.
No uses el espacio destacado del menú para información secundaria o de colofón, como las condiciones del servicio, la política de privacidad o información sobre ti o sobre la tecnología que utilizas. No descuides la explicación de las funciones principales de tu bot.