Vinculación de cuentas

La vinculación de cuentas es distinta de otras funciones de vista web disponibles en la plataforma de Messenger. Solo se puede iniciar mediante los botones "Iniciar sesión" y no desde el menú persistente del bot, los botones de URL ni desde un proceso de vista web o extensión del chat ya abiertos.

Los desarrolladores que usen estas funciones ahora pueden obtener el identificador de usuario de manera segura usando la función getContext() en las extensiones de Messenger y los bots pueden usarlo para vincular la cuenta del usuario o personalizar la experiencia.

Actualmente, la vinculación de cuentas solo se admite en la app de Messenger de iOS y Android.

Cuando un usuario inicia una conversación con tu negocio, tal vez quieras identificarlo como un cliente que ya tiene una cuenta en tu negocio. Para ayudarte a hacer esto, creamos un protocolo seguro para vincular y desvincular la identidad de usuario de Messenger con la identidad de usuario de tu negocio.

La vinculación de cuentas te permite invitar a los usuarios a que inicien sesión mediante tu propio proceso de autenticación y recibir un identificador de usuario específico de la página (PSID) de Messenger al final del proceso. Esto te permite brindar una experiencia más segura, personalizada y relevante a los usuarios.

Índice

Proceso de vinculación

El proceso de vinculación de cuentas comprende unos pocos pasos sencillos.

  1. Registra una URL de devolución de llamada usando el botón "Iniciar sesión".
  2. La plataforma de Messenger invoca la URL registrada cuando un usuario inicia el proceso de vinculación de cuentas. Los parámetros redirect_uri y account_linking_token se agregan a la devolución de llamada registrada.
  3. Cuando se completa la vinculación, redirige a los usuarios a la ubicación que proporciona redirect_uri y agrega un parámetro authorization_code (definido por ti) para confirmar la vinculación.
  4. De manera opcional, recupera el identificador específico de la página (PSID) del usuario mediante el punto de conexión de vinculación de cuentas. Este paso solo se debe usar en casos especiales en los que necesites el PSID del usuario en el contexto del proceso de vinculación.

La desvinculación de cuentas se puede iniciar de las siguientes maneras:

Devolución de llamada

La plataforma de Messenger invoca una URL de vinculación de cuentas cuando un usuario activa la vinculación de cuentas. Los parámetros redirect_uri y account_linking_token se agregan a la devolución de llamada de URL.

<yourAccountLinkingUrl>
  ?account_linking_token=ACCOUNT_LINKING_TOKEN
  &redirect_uri=CALLBACK_URL

Si la vinculación de cuentas se realiza correctamente, debes completar el proceso. Para ello, redirige el navegador a la URL especificada en el parámetro redirect_uri y agrega un parámetro authorization_code definido por ti. Ten en cuenta que posiblemente la URL ya contenga parámetros, por lo que debes agregar el código de autorización en consecuencia:

<redirect_uri>
  &authorization_code=AUTHORIZATION_CODE

Si la vinculación de cuentas no se realiza correctamente, redirige el navegador al valor de redirect_uri que recibiste como parámetro, pero no agregues authorization_code.

Parámetros

Nombre del parámetro Descripción

redirect_uri

URI de redireccionamiento que Messenger agrega. Al final del proceso de autenticación, debes redirigir el navegador a esta ubicación. Puede contener parámetros codificados de URL.

account_linking_token

Token de corta duración que Messenger pasa y que debes devolver como parte del esquema de redireccionamiento. Este token solo es válido durante cinco minutos, está cifrado y es único para cada usuario.
Puedes llamar al punto de conexión de recuperación de PSID con este token para obtener el PSID correspondiente.

authorization_code

Código que proporcionas para confirmar una vinculación correcta. La plataforma de Messenger pasará este código junto con el PSID del usuario nuevamente al evento de webhook de vinculación de cuentas. Si no se pasa este parámetro, el proceso de vinculación se cancelará.

Evento de webhook

Cuando un proceso de vinculación se efectúa correctamente, se activa el evento de vinculación de cuentas para entregar el identificador específico de la página (PSID) del usuario.

Debes registrar el evento de devolución de llamada de vinculación de cuentas. Si este evento del webhook no se reconoce, el proceso de vinculación se cancelará.

Punto de conexión de recuperación de PSID

En algunos casos, debes recuperar el identificador específico de la página (PSID) del usuario durante el proceso de vinculación. Para ayudarte en estas circunstancias, ofrecemos un punto de conexión de recuperación de PSID que te permite extraer el PSID del usuario con un token account_linking_token válido y vigente.

Solicitud

curl -X GET "https://graph.facebook.com/v2.6/me?access_token=PAGE_ACCESS_TOKEN \
      &fields=recipient \
      &account_linking_token=ACCOUNT_LINKING_TOKEN"

Respuesta

{
  "id": "PAGE_ID",
  "recipient": "PSID"
}    

En algunos casos, debes desvincular el identificador específico de la página (PSID) del usuario de tu backend de manera programática. Para ayudarte en estas circunstancias, ofrecemos un punto de conexión de desvinculación de PSID que te permite desvincular la cuenta del usuario con un PSID válido.

Solicitud

curl -X POST -H "Content-Type: application/json" -d '{
   "psid":"PSID"
}' "https://graph.facebook.com/v2.6/me/unlink_accounts?access_token=PAGE_ACCESS_TOKEN"

Respuesta

{
  "result": "unlink account success"
}

Prácticas recomendadas

Usa la vinculación de cuentas si tu sistema de cuentas de usuario se extiende más allá de Messenger.

Permite que las personas creen una cuenta desde Messenger para que esté disponible en otros lugares.

Invita a los usuarios a iniciar sesión cuando sea relevante en el contexto (es decir, cuando el usuario de tu bot pueda advertir el beneficio de hacerlo).

Considera cómo debe ser el comportamiento de tu bot si un usuario no quiere iniciar sesión.

Proporciona una confirmación clara y un mensaje de bienvenida amable después del inicio de sesión.

No uses la vinculación de cuentas si las personas solo interactuarán contigo a través de Messenger. Puedes almacenar la información de su cuenta mediante el identificador del hilo de mensajes.

Si puedes evitarlo, no exijas la vinculación de cuentas de inmediato. Permite que las personas se familiaricen primero con tu bot.

Proceso de diseño recomendado

  1. Invita a iniciar sesión con un mensaje que incluya nuestro botón para la vinculación de cuentas.
  2. Muestra tu página de inicio de sesión (incluida la opción "Crear cuenta") en la vista web de vinculación de cuentas. Asegúrate de que se vea y funcione bien en las pantallas de celulares.
  3. Después de un inicio de sesión correcto, muestra un mensaje de confirmación en la vista web. Los usuarios deberán cerrarlo después de verlo.
  4. A continuación, muestra un agradecimiento amable o los próximos pasos en la conversación, incluida una opción para cerrar la sesión.