Vinculación de cuentas

La vinculación de cuentas es una función aparte de las otras funciones de vista web disponibles en la plataforma de Messenger. Solo se puede iniciar mediante los botones de inicio de sesión y no desde el menú persistente del bot, los botones de URL ni desde el plugin de chat ni un proceso de una vista web ya abierto.

Los desarrolladores que usan estas funciones ahora pueden obtener el identificador del usuario de forma segura mediante la función getContext() en las extensiones de Messenger. Después, los bots pueden usar dicho identificador para vincular la cuenta del usuario o personalizar la experiencia.

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

Cuando un usuario inicia una conversación con tu empresa, es posible que quieras identificarlo como un cliente que ya tiene una cuenta en tu negocio. Para ayudarte a ello, hemos creado un protocolo seguro para vincular y desvincular la identidad del usuario de Messenger y la identidad del usuario de tu empresa.

La vinculación de cuentas te permite invitar a los usuarios a iniciar sesión mediante tu propio proceso de autenticación y recibir un identificador de usuario específico de la página (PSID) de Messenger tras la finalización. Puedes ofrecer a los usuarios una experiencia más segura, personalizada y pertinente.

Contenido

Proceso de vinculación

El proceso de vinculación de cuentas sigue unos pasos sencillos.

  1. Registra una URL de devolución de llamada mediante 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 anexan a la devolución de llamada registrada.
  3. Una vez finalizada la vinculación, redirige a los usuarios a la ubicación proporcionada por redirect_uri y anexa un parámetro authorization_code (definido por ti) para confirmar la vinculación.
  4. De forma opcional, recupera el identificador de usuario específico de la página (PSID) mediante el extremo de vinculación de cuentas. Este paso solo se debe usar en casos especiales, cuando necesites el PSID del usuario como parte del proceso de vinculación.

A continuación, se indica quién puede iniciar la desvinculación de cuentas:

Devolución de llamada

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

<yourAccountLinkingUrl>
  ?account_linking_token=ACCOUNT_LINKING_TOKEN
  &redirect_uri=CALLBACK_URL

Si la vinculación de cuentas se realiza correctamente, redirige el navegador a la URL especificada en el parámetro redirect_uri y anexa un parámetro authorization_code definido por ti para finalizar el proceso. Ten en cuenta que la URL ya puede contener parámetros, por lo que debes anexar el código de autorización como corresponda:

<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 anexes el valor de authorization_code.

Parámetros

Nombre del parámetro Descripción

redirect_uri

URI de redireccionamiento que añadirá Messenger. Debes redirigir el navegador a esta ubicación al final del proceso de autenticación. Puede contener parámetros con codificación de URL.

account_linking_token

Identificador de corta duración que pasa Messenger y que tienes que devolver como parte del esquema de redireccionamiento. Este identificador solo es válido durante cinco minutos, está cifrado y es único para cada usuario.
Puedes llamar al extremo de recuperación de PSID con dicho identificador para obtener el PSID correspondiente.

authorization_code

Código que proporcionas para confirmar que la vinculación se realizó correctamente. La plataforma de Messenger devolverá este código junto con el PSID del usuario como evento del webhook de vinculación de cuentas. Si no se pasa este parámetro, se cancelará el proceso de vinculación.

Evento de webhook

Si la vinculación se realiza correctamente, se activa el evento de vinculación de cuentas para entregar el identificador de usuario específico de la página (PSID).

Debes registrarte en el evento de devolución de llamada de vinculación de cuentas. Si no se acepta este evento de webhook, se cancelará el proceso de vinculación.

Extremo de recuperación de PSID

En determinados casos, tienes que recuperar el identificador de usuario específico de la página (PSID) durante el proceso de vinculación. Para ayudarte a ello, vamos a proporcionar un extremo de recuperación de PSID que te permitirá obtener el PSID del usuario a partir de un parámetro account_linking_token válido y sin caducar.

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 determinados casos, tienes que desvincular el identificador de usuario específico de la página (PSID) de tu back-end mediante programación. Para ayudarte a ello, vamos a proporcionar un extremo de desvinculación de PSID que te permitirá desvincular la cuenta del usuario a partir de 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

Utiliza la vinculación de cuentas si dispones de un sistema de cuentas de usuario que no es exclusivo de Messenger.

Ofrece a los usuarios la posibilidad de crear una cuenta en Messenger que también esté disponible fuera de esta plataforma.

Solicita a los usuarios que inicien sesión cuando resulte pertinente por contexto, es decir, cuando los usuarios del bot puedan comprobar las ventajas de esta acción.

Piensa en cómo debería comportarse el bot si un usuario rechaza el inicio de sesión.

Muestra una confirmación clara y una bienvenida acogedora tras el inicio de sesión.

No utilices la vinculación de cuentas si solo esperas interactuar con los usuarios a través de Messenger. Puedes almacenar información de las cuentas mediante los identificadores de las cadenas de mensajes.

Si puedes evitarlo, no exijas de entrada la vinculación de cuentas. Deja que los usuarios se familiaricen primero con el bot.

Proceso de diseño recomendado

  1. Solicita el inicio de sesión con un mensaje que incluya nuestro botón de vinculación de cuentas.
  2. Muestra tu página de inicio de sesión (incluida la opción de crear una cuenta) en la vista web de vinculación de cuentas. Comprueba que tiene un buen aspecto y funciona bien en las pantallas de dispositivos móviles.
  3. Cuando se inicie sesión correctamente, muestra un mensaje de confirmación en la vista web. Los usuarios tendrán que ignorarlo ellos mismos posteriormente.
  4. Para continuar, incluye un mensaje cordial de agradecimiento o indica los siguientes pasos en la cadena, incluida una opción para cerrar sesión.