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

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

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é.

0

Escrito por Roel Magdaleno

Desarrollador Backend y Performance Engineer.

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

  1. Avatar de Vane
    Vane

    Hola, y cómo puedo volver a quitar ese botón de “empezar”

    1. Avatar de Roel Magdaleno

      Gracias por tu pregunta. Para borrar el botón de “Empezar” en tu Messenger bot sería con un DELETE request, por ejemplo:

      curl -X DELETE -H "Content-Type: application/json" -d '{
        "fields": [
          "get_started"
        ]
      }' "https://graph.facebook.com/v6.0/me/messenger_profile?access_token="

      Ese request debería volverte un response success:

      {
          "result": "success"
      }

      Puedes ver mas detallado en la documentación oficial:

      https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/#delete

      Aunque creo que agregaré esto al post, muchas gracias! Saludos 😀

  2. Avatar de Fernanda
    Fernanda

    hola, al pegar esto en la URL: https://graph.facebook.com/v2.6/me/messenger_profile?access_token= me manda el siguiente mensaje:

    {
       "error": {
          "message": "Invalid OAuth access token.",
          "type": "OAuthException",
          "code": 190,
          "fbtrace_id": "A2-VttwA4hpGw3aZhkiMKsQ"
       }
    }

    Yo quiero quitar el bot que tengo para messenger de “Empezar”

    1. Avatar de Roel Magdaleno

      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.

  3. Avatar de sebastian
    sebastian

    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….

    1. Avatar de Roel Magdaleno

      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.

  4. Avatar de Sandro Gonzalez
    Sandro Gonzalez

    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!

    1. Avatar de Roel Magdaleno

      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. 🙂

    2. Avatar de Sandro Gonzalez
      Sandro Gonzalez

      Hola Roel, muchas gracias era eso mismo. Se lo agradezco mucho!

  5. Avatar de Allyson
    Allyson

    Hola, uso ManyChat todo genial pero el botón me sale: “Get Started”, cómo puedo cambiarlo a “Empezar”??

    1. Avatar de Roel Magdaleno

      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.

    2. Avatar de wilfredo
      wilfredo

      tengo el mismo problema si tienes alguna solucion me compartes la solucion por favor te lo agradeceré bastante.

  6. Avatar de Ernesto Maticorena
    Ernesto Maticorena

    Hola! quisiera saber como quitar el botón de “Empezar”. Pero no sé donde poner esos códigos. Me podría ayudar?

    1. Avatar de Roel Magdaleno

      Hola Ernesto, ya había respondido a esa pregunta en este comentario:

      https://roelmagdaleno.com/boton-empezar-en-messenger-bot/#comment-47

      Y el código lo debes correr dentro de una terminal de comandos como Git Bash o iTerm (en macOS). Debes tener conocimientos básicos sobre la terminal de comandos.

      Espero te pueda servir. Saludos.

  7. Avatar de luis
    luis

    Hola tengo un problema anteriormente tenia chat fuel, y como es versión prueba todo bien, digamos que ya se venció el plazo, finalmente decidí también desinstalar la app, pero aun así se quedo con el botón ¨empezar¨ intente quitarlo y no se quita incluso revise en Facebook develo per y no hay nada instalado, es raro que se haya quedado con ese botón.

    1. Avatar de Roel Magdaleno

      Hola Luis, lo más probable es que internamente (en la base de datos de Facebook) la opción de “Empezar” siga activa, a muchos les ha pasado con ManyChat y al parecer ahora con Chatfuel, pero se logra desactivar usando lo que indiqué en este comentario: https://roelmagdaleno.com/boton-empezar-en-messenger-bot/#comment-47

      Hazme saber si te funcionó y recuerda que debes tener conocimientos sobre consola de comandos para desactivarlo. Saludos.

  8. Avatar de Felix

    Hola, Necesito ayuda para quitar el boton de empezar.

    1. Avatar de Roel Magdaleno

      Hola Felix, recién publiqué un nuevo post donde puedes aprender a cómo desactivar el botón “Empezar” de tu Messenger: https://roelmagdaleno.com/quita-el-boton-empezar-en-tu-messenger-bot/

  9. Avatar de Paola
    Paola

    ¡Hola! ¿Cómo puedo personalizar el mensaje de respuesta una vez que los clientes seleccionan el “Empezar”?

    1. Avatar de Roel Magdaleno

      Hola Paola, para responder con un texto después de que el cliente haga click en “Empezar”, se tiene que crear un servidor de Node.js y manejar las respuestas ahí con JavaScript. Un ejemplo que hice hace un par de años es el siguiente archivo: https://gitlab.com/jmedia/bots/messenger/-/blob/master/messenger-bot.js. Si vas a la línea 118 de ese archivo, verás como manejo la respuesta inicial.

      La documentación de Facebook explica los pasos a seguir para conseguir esto:
      https://developers.facebook.com/docs/messenger-platform/getting-started/quick-start/

      Si lo que buscas es configurarlo en una aplicación, en vez de programarlo tu mismo, entonces regístrate en https://manychat.com/product/messenger-marketing, ManyChat te permite crear bots con mensajes personalizados de una forma sencilla.

      Saludos y gracias por visitar mi blog!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *