Este tutorial explica a desarrolladores cómo permitir que los usuarios de una skill Alexa inicien sesión con Facebook desde la skill. Esto sirve por ejemplo para:

  • Identificar a usuarios ya existentes de tu app móvil o de tu web. Por ejemplo, tienes una aplicación web de pedidos a domicilio, en la que los usuarios se registran e inician sesión con Facebook. Ahora que estás desarrollando la skill Alexa de tu página de delivery, quieres que los usuarios puedan iniciar sesión en tu Alexa skill para acceder a sus últimos pedidos, repetir sus pedidos favoritos, consultar el estado de un pedido hecho en la web, etc…
  • Pedir al usuario permisos para acceder a información de Facebook de interés para la skill de Alexa, como por ejemplo: listado de amigos en facebook, fecha de cumpleaños, etc…
  • Registrar a nuevos usuarios.

Esta técnica para iniciar sesión en un servicio de terceros desde una skill de Alexa se llama Account Linking y utiliza el protocolo oAuth 2. Facebook implementa el protocolo oAuth 2 en su login, por eso podemos utilizarlo.

Es decir, estos pasos que se detallan aquí para hacer login se pueden seguir usando otros servicios de terceros que también implementen oAuth 2. Por ejemplo, nuestra propia web/app puede implementar login oAuth 2. A continuación, se explica el ejemplo con Facebook.

Para iniciar sesión en la skill utilizando los credenciales de Facebook, el usuario necesitará una pantalla, que puede ser:

  • Su teléfono móvil, abriendo la app Alexa. Todos los usuarios de Alexa han instalado esta app para configurar su dispositivo Alexa. Este es el método que vamos a usar en este tutorial.
  • Su teléfono móvil u ordenador, a través de de la app/web del servicio en el que se va a loguear. Esto requiere hacer alguna implementación en la app/web, no lo explicaremos en este tutorial sino en uno próximo 😉
App Alexa pidiéndonos el login Facebook para nuestra skill.

Pasos a seguir:

1. Creamos nuestra skill Alexa en la consola de desarrollador o utilizando un template molón 🙂

2. En la sección «Account Linking» de nuestra skill, pondremos la configuración que aparece en la siguiente pantalla:

  • Do you allow users to create an account or link to an existing account with you?  YES
  • Select an authorization grant type: Auth Code Grant
  • Authorization URI: https://www.facebook.com/v6.0/dialog/oauth
  • Access Token URI: https://graph.facebook.com/v6.0/oauth/access_token
  • Your Client ID: (esta dato lo obtendremos en los pasos siguientes)
  • Your Secret: (esta dato lo obtendremos en los pasos siguientes)
  • Your Authentication Scheme HTTP Basic (Recommended)
  • Domain List: facebook.com y graph.facebook.com 
Sección «Account Linking» de nuestra skill, en la consola de desarrolladores.

3. Accedemos al panel de desarrolladores de Facebook y creamos una aplicación. Tras elegir un nombre para esta aplicación, seleccionaremos el tipo de producto «Inicio de Sesión con Facebook»:

4. En la configuración del incio de sesión por Facebook, indicamos las 3 URL de redireccionamiento de oAuth válidas, que las copiamos de la consola de Alexa (ver imagen del paso 2). Y pulsamos en «guardar»:

5. Desde el apartado Configuración > Básica, rellenamos los campos «email de contacto» y los links a nuestra política de privacidad y condiciones de servicio. Y puldamos en guardar:

6. De la pantalla anterior (Configuración > Básica de nuestra app Facebook), copiamos los campos «Identificador de la app» y «Clave secreta de la app» y los pegamos en la consola de Alexa (pantalla del paso 2, campos «Your Cliend ID» y «Your Secret», respectivamente). Y guardamos.

7. En el código de nuestra skill, solicitamos el login por Facebook y obtenemos el Access Token de Facebook de la siguiente forma:

Y con estos pasos ya has terminado el Account linking usando Facebook en tu skill Alexa 🙂