Extensiones del chat
Las extensiones del chat permiten que los bots puedan proporcionar funciones interactivas y sociales que los usuarios pueden invocar directamente desde sus conversaciones.
CONTENIDO
Información general
Modelo de interacción
Las extensiones del chat aparecen en el contenedor del editor en Messenger si el usuario ya interactuó con el bot asociado.
Cuando el usuario toca el icono de la extensión del chat, se abre la interfaz de usuario basada en vista web especificada por el desarrollador. A continuación, el usuario puede crear o seleccionar contenido para compartirlo en la conversación. El mensaje compartido en la conversación puede contener imágenes, enlaces y más.
Cuando los usuarios en el grupo interactúan con cualquier mensaje que se haya compartido de esta forma, el desarrollador tendrá acceso a la información de contexto en la conversación, podrá pedir permisos y todo lo demás incluido en el SDK para JavaScript para las extensiones del chat.
Casos de uso potenciales
- Expresión: crear stickers o memes directamente en Messenger. Compartir canciones, videos u otros contenidos.
- Contenido multimedia: enviar historias sobre temas que sigues al grupo en el momento en que ocurren.
- Comercio: ordenar y planificar en relación con grupos.
- Productividad: enviar actualizaciones desde herramientas de seguimiento de tareas, editar un documento en colaboración.
- Entretenimiento: crear juegos o desafíos para grupos.
Te ofrecemos TaskBot, un bot de código abierto que muestra todas las funciones descritas aquí.
Probar en Messenger →Repositorio de GitHub →
Configuración del punto de entrada del contenedor
Para que las personas que agregaron tu bot lo vean en su contenedor, debes definir la URL de inicio.
Si tu extensión del chat aún no está lista para lanzarse, no olvides definir in_test como true para evitar que se muestre a otras personas además de desarrolladores hasta que esté lista.
Uso compartido
La plataforma de Messenger admite la función de compartir contenido personalizado desde la vista web y permite a los desarrolladores proporcionar un mensaje personalizado y un destino para los mensajes compartidos desde el bot.
Se agregaron varias mejoras a estas funciones para conseguir que funcionaran con las extensiones del chat. Esto es lo que necesitas saber:
Compartir en la conversación actual
La función beginShareFlow() posee un parámetro mode que ahora admite el modo current_thread. De este modo, el usuario puede compartir contenido en la conversación desde la que invocó la extensión del chat, en lugar de tener que seleccionar otra conversación. La mayoría de los desarrolladores deben elegir el modo current_thread para el interior propio de la extensión.
En algunas situaciones es recomendable comprobar si la versión de Messenger del usuario admite este modo. Usa el método getSupportedFeatures() y comprueba la clave "sharing_direct".
Reaccionar a contenidos compartidos
La devolución de llamada success para beginShareFlow() se llama independientemente de que el usuario confirme o cancele la acción de compartir, siempre que no se haya encontrado ningún error.
Messenger ahora pasa el campo is_sent en la respuesta a la devolución de llamada success, que te informa cuando un mensaje se envió efectivamente.
Una vez que el usuario compartió un contenido, te recomendamos cerrar la ventana al terminar o dirigir al usuario a la siguiente parte del proceso.
<script>
var messageToShare = { ... };
MessengerExtensions.beginShareFlow(function success(response) {
if(response.is_sent === true){
// User shared. We're done here!
MessengerExtensions.requestCloseBrowser();
}
else{
// User canceled their share!
}
},
function error(errorCode, errorMessage) {
// An error occurred trying to share!
},
messageToShare,
"current_thread");
</script>Consulta la documentación sobre beginShareFlow() para obtener más especificaciones.
Obtención del identificador de usuario y el contexto de la conversación
Llama a la función getContext() para obtener:
- El identificador del usuario (PSID)
- El identificador de la conversación
- El tipo de conversación
Esta función se puede usar con todos los usuarios que encuentren tu vista web, sin importar si tienen o no tienen una conversación iniciada con tu bot.
Ten en cuenta que obtener el identificador de usuario de esta forma no implica tener la capacidad de obtener el perfil del usuario. Para esto último, necesitarás el permiso del perfil.
Más información →
Administración de permisos
Cuando un usuario inicia una conversación con tu bot, automáticamente se te conceden los permisos para enviar mensajes al usuario y obtener su perfil. Estos permisos se revocan cuando el usuario bloquea el bot o elimina la conversación.
Considera solicitar estos permisos para los usuarios que encuentran tu bot mediante una vista web y aún no inician una conversación con este. Para ello, puedes usar las funciones de permisos incluidas en el SDK para JavaScript para las extensiones de Messenger.
Más información →Consejos y prácticas recomendadas
Estas son las prácticas recomendadas para crear una extensión del chat eficaz para la plataforma de Messenger:
- Enfoque general
- Cómo usar los diferentes modos para compartir
- Cómo controlar la vista web de Chrome para maximizar el efecto
- Cómo asegurar la compatibilidad retrospectiva
Kit de diseño
¿Estás listo para diseñar tu extensión del chat? Echa un vistazo a nuestro práctico archivo de Sketch, con todos los componentes que necesitas.
Obtener el kit →Preguntas frecuentes y solución de problemas
P: ¿Debo tener un bot para desarrollar una extensión del chat?
R: Sí. Las extensiones del chat son extensiones de bots.
P: ¿Qué hace que una extensión del chat aparezca en el contenedor del editor?
R: Una extensión del chat aparece en el contenedor del editor de los usuarios que interactuaron con el bot asociado.
P: ¿Necesito una extensión del chat para permitir que los usuarios compartan desde mi bot?
R: No. La plataforma de Messenger ofrece muchas otras formas para permitir a los usuarios compartir contenido desde tu bot.
P: ¿Necesito una extensión del chat para usar la vista web y el SDK para JavaScript para las extensiones de Messenger en mi bot? ¿Cuál es la conexión?
R: No. Simplemente nos gusta esa palabra. De hecho, las vistas web se pueden invocar de muchas maneras aparte de las extensiones del chat y todas permiten el uso de las extensiones de Messenger.
P: Cuando el destinatario de una extensión del chat toca un enlace, ¿cuáles funciones están disponibles a través del SDK para JavaScript para las extensiones de Messenger?
R: Todas las funciones que están disponibles para el remitente están disponibles para los usuarios que abren el contenido compartido. Puedes obtener el identificador de usuario, el contexto de la conversación, iniciar tus propios contenidos compartidos y mucho más. Ten en cuenta que, en estas situaciones, no tendrás acceso al perfil de usuario ni al envío de mensajes a dichos usuarios hasta que solicites el permiso requerido.
P: ¿Las extensiones del chat funcionan en Messenger.com y Facebook.com?
R: Esta función solo es compatible con iOS y Android. Los usuarios en clientes basados en web pueden hacer clic en enlaces compartidos por usuarios de extensiones del chat, pedro no podrán usar la funcionalidad que ofrece el SDK para JavaScript. Para obtener más información, consulta la sección "Compatibilidad con versiones anteriores" en la Guía de prácticas recomendadas para extensiones del chat.
P: ¿Cuál es la diferencia entre compartir contenido en la conversación actual y compartir mediante transmisión?
R: Las extensiones del chat usan las funciones para compartir de la vista web que se iniciaron previamente al agregar el proceso "current_thread".
Si un usuario invocó a tu bot dentro de una conversación mediante el editor, lo obvio es que quiera compartirlo ahí y no con otra persona. Entonces, con el proceso "current_thread", el usuario puede confirmar el envío de un contenido a la conversación actual, en lugar de propagarlo a varias conversaciones.
P: Estoy usando la versión más reciente de Messenger y el SDK no funciona en la vista web. ¿Cuál es el problema aquí?
R: Comprueba lo siguiente:
Página sin publicar: si la página a la que se adjuntó el bot no está publicada, el SDK no se cargará para usuarios que no tengan ningún rol (como desarrollador o administrador) en tu página. Agrega al usuario a la página o publica la página.
Propiedad
messenger_extensionno definida: asegúrate de configurarmessenger_extensionscomotruepara cualquier lugar desde el que se abra la vista web. Esto incluye:- Los menús del bot
- Los botones en los mensajes que envía el bot
- Los mensajes compartidos mediante
beginShareFlow()y los botones para compartir
Dominio no incluido en la lista blanca: agrega el dominio en el que se aloja la página en la lista blanca de dominios de tu bot.
P: Creé una extensión del chat pero no logro que aparezca en el contenedor del editor. ¿Cómo lo resuelvo?
Comprueba lo siguiente:
Comprueba que configuraste la
home_urlpara la página específica que quieres que aparezca, usando el token de acceso a la página para dicha página. Transferir un bot de una página de Facebook a otra no transferirá la URL de inicio.Si configuraste el atributo
in_testcomo "true" durante el modo de desarrollo, comprueba que la persona que consulta el contenedor sea un desarrollador o evaluador del bot en cuestión, o un administrador de su página de Facebook. Si publicaste el bot, comprueba que enviaste la solicitud y recibiste la aprobación para el permiso depages_messaging.Comprueba que la página de Facebook a la que esté vinculado el bot esté publicada.
Comprueba que el bot esté en modo público.
Comprueba que hablaste antes con el bot.
Las extensiones del chat que aparecen en el contenedor del editor están almacenadas en caché. Es probable que debas esperar un poco para que aparezca.