Agrega el botón “Empezar” en tu Messenger Bot

Hace un año empecé a leer sobre cómo desarrollar un Messenger Bot de Facebook; claro, sin ver nada de inteligencia artificial y esas cosas, algo sencillo.

Ejemplo del botón "Empezar" en Messenger Bot


Pero siempre veía que los bots que anuncian en la documentación de Facebook traían un botón “Empezar” ó “Get Started” y entre tanta documentación que hay, no encontraba cómo poner ese botón en mi propio Messenger Bot.

La petición

Resulta que dicho botón lo tenía que activar mandando una petición a los servidores de Facebook, y en lo personal, la documentación no sentía que me explicara algo en ese momento.

¿No sabes qué es una petición? Acá te lo explico.

Así que, se supone que tienes que mandar una petición al siguiente enlace:

https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>

Y debemos enviarle un parámetro en formato JSON con la propiedad que queremos activar:

curl -X POST -H "Content-Type: application/json" -d '{   
   "<PROPERTY_NAME>": "<NEW_PROPERTY_VALUE>",
   "<PROPERTY_NAME>": "<NEW_PROPERTY_VALUE>"
}' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>"

En este caso, la propiedad para el botón “Empezar” es:

{
   "get_started":{
      "payload": "<GET_STARTED_PAYLOAD>"
   }
}

Pero, ¿qué se pone en GET_STARTED_PAYLOAD? Simple, ahí va un texto cualquiera que servirá de identificador de tu botón en tu aplicación, y te ayudará a ejecutar la acción que tú programes para ella.

Antes de realizar la petición, debes tener tu page_access_token, una cadena de caracteres que sirve para autenticar nuestra petición.

Después de hacer la petición, y si todo sale bien, deberás obtener la siguiente respuesta:

{ "result": "success" }

Pruebas y Resultados del Messenger Bot

Ya sabes cómo se hace la petición para activar el botón “Empezar”, ahora te mostraré cómo lo hice en una página de Facebook recientemente:

La interfaz anterior es del programa Insomnia, un programa para ejecutar peticiones API locales o remotas.

Sin embargo, también puedes ejecutar la siguiente petición desde una terminal (Git Bash, iTerm, etc.) con cURL instalado:

curl --request POST \
   --url 'https://graph.facebook.com/v2.6/me/messenger_profile?access_token=TU_ACCESS_TOKEN' \
   --header 'content-type: application/json' \
   --data '{ "get_started": { "payload": "empezar" } }'

De hecho, ese código cURL lo generé usando Insomnia. Usando ambos, deberías tener el mismo resultado.

Y acá verán el grandioso botón “Empezar”:

Botón "Empezar" en página oficial de Facebook

Le he configurado un mensaje de bienvenida cuando el usuario aprieta el botón “Empezar”, pero eso ya se los explicaré en otro post.

Si te da error en algo, no dudes en comentar tus dudas, con gusto te ayudaré.

10 comentarios en “Agrega el botón “Empezar” en tu Messenger Bot”

    • Hola, gracias por tu comentario. El problema es que no estás mandando el parámetro access_token dentro de la URL. Sería algo así:

      https://graph.facebook.com/v2.6/me/messenger_profile?access_token=

      Si te llegase a salir el mismo error, quiere decir que tu ACESS_TOKEN es inválido y no está siendo creado correctamente por Facebook o incluso no tiene los permisos necesarios para hacer la operación. Revisa aquí si este es el caso:

      https://developers.facebook.com/docs/pages/access-tokens/

      Saludos.

      Responder
  1. Hola sabes yo tengo vinculado un bot de manychat cuando hago laprueba en Manychat sale genial disparado al messenger de mi pagina face como prueba y funciona todo, ahora cuando lo aplico voy al messenger como visitante le pongo mandar msj y solo aparece el botón empezar le doy click y ahí la quedó… ya elevé todo a face pero son eternos… vos tenés idea de que puede ser?

    Mil gracias ya hice de todo lo saque de automatico en face, y nada reincié la página y nada…. no sé más que hacer….

    Responder
    • Hola Sebastian, solo he usado ManyChat una vez y para que me funcionara ese servicio tuve que darle permisos a la página de Facebook para que pudiera responder a los usuarios; la verdad es que no recuerdo cómo se llaman los permisos, pero parece que por ahí puede estar tu problema.

      En ManyChat hay un botón que se llama “Refresh Facebook Permissions” dentro de “Settings -> General”. Además, hiciste todo los pasos de este tutorial: https://manychat.com/blog/how-to-make-a-facebook-messenger-bot-in-24-minutes-without-code/?

      Ya si no funciona, sería mejor que contactaras al soporte de ManyChat para ver qué te hace falta por hacer.

      Saludos y espero puedas resolverlo.

      Responder
  2. Hola Roel! Muchas gracias por tu blog! Miré tengo este error. Escribí el código que UD puso para git bash y este fue el error que obtuve:

    $ curl –request POST \ –url ‘Xxxxxxxxxxx’ \ –header ‘content-type: application/json’ \ –data ‘{ “get_started”: { “payload”: “empezar” } }’
    curl: (3) URL using bad/illegal format or missing URL
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 418 0 359 100 59 710 116 –:–:– –:–:– –:–:– 827{“error”:{“message”:”Unsupported post request. Object with ID ‘me’ does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https:\/\/developers.facebook.com\/docs\/graph-api”,”type”:”GraphMethodException”,”code”:100,”error_subcode”:33,”fbtrace_id”:”A1RPY9YRel0pGzGFmt7bigj”}}
    curl: (3) URL using bad/illegal format or missing URL
    curl: (3) URL using bad/illegal format or missing URL

    ** Por supuesto cambie el token por Xxxx. Gracias por su tiempo de antemano!

    Responder
    • Hola Sandro! Gracias por pasar a mi blog.

      Al parecer tu error es debido a falta de permisos en el token que generaste, ¿si seguiste el post al pie de la letra? Mas que nada la sección de “La Petición“. Y también checa que tu aplicación tenga los permisos de pages_messaging, tal como dice aquí: https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/

      Si aún así no te funciona, prueba otra versión de la API, porque yo usaba la v2.6 pero veo que la actual es la v9.0.

      Déjame saber qué sucedió con tu problema para checar más a detalle el problema. Sauldos. 🙂

      Responder
    • Hola Allyson, no estoy seguro de cómo cambiar el idioma del botón “Get Started” y eso no se puede hacer con ManyChat ni directamente con Facebook. Una idea, tal vez, puedas cambiar el idioma de tu aplicación/página de Facebook a español porque en las páginas donde probé eran en español y salía “Empezar”.

      Espero te pueda servir, saludos.

      Responder

Deja un comentario