Recibe información sobre productos automáticamente a través de Facebook Messenger

Este tutorial muestra cómo proporcionar a un usuario información relevante sobre un producto de forma automática a través de Facebook Messenger.

En este caso, el usuario saluda a la empresa a través de su página de Facebook. Automáticamente se envía un mensaje al usuario. Mediante la concordancia de palabras clave, el usuario puede recibir información personalizada sobre productos y servicios.

NOTA: Este tutorial asume que ya has creado un Perfil de Facebook y una Página de Facebook.

Código fuente

El código fuente de este proyecto está disponible en la comunidad Repositorio GitHub.

Requisitos previos

  1. Crear una cuenta de Vonage
  2. Instalar Node JS - necesario para usar la interfaz de línea de comandos (CLI) de Vonage.
  3. Instalar la CLI de Vonage
  4. Sepa cómo probar su servidor webhook localmente
  5. Python 3 instalado
  6. Frasco instalado

Los pasos

Una vez cumplidos los requisitos previos, los pasos son los siguientes:

  1. Crear una aplicación de Vonage
  2. Vincula tu aplicación de Vonage a tu página de Facebook
  3. Poner en marcha Ngrok
  4. Escriba su aplicación básica
  5. Interactúa con tu página de Facebook
  6. Cliente mínimo para enviar mensajes de Facebook Messenger utilizando Python
  7. El caso de uso revisado
  8. Una aplicación

Hay varias maneras de lograr el mismo resultado con Vonage. Este tutorial muestra sólo una manera específica de hacer las cosas, por ejemplo, verás cómo usar la línea de comandos para crear la aplicación, en lugar del Panel de control. Otros tutoriales muestran otras maneras de hacer las cosas.

Crea tu aplicación de Vonage

Si aún no lo ha hecho, cree un nuevo directorio para su proyecto, por ejemplo fbm-app. Cambia a este directorio.

Usa la CLI para crear tu aplicación de Vonage:

vonage apps:create "FBM App" --messages_inbound_url=https://abcd1234.ngrok.io/inbound --messages_status_url=https://abcd1234.ngrok.io/status

Anote el ID de solicitud generado. También puede comprobarlo en el salpicadero.

Este comando también creará una clave privada, fbm_app.key en su directorio actual, así como actualizar/crear vonage_app.json.

Este comando también establece los dos webhooks donde tiene lugar toda la interacción entre tu aplicación y Vonage. Debes tener un servidor en ejecución y accesible para Vonage en estas URL.

Vincula tu solicitud a tu página de Facebook

Parte 1: Conecta tu página de Facebook a tu cuenta API de Vonage

Conectar tu página de Facebook a tu cuenta API de Vonage permite que Vonage maneje los mensajes entrantes y te permite enviar mensajes desde Messages API.

  1. Para vincular tu página de Facebook a tu cuenta API de Vonage, visita la página Enlaza la página de Facebook en tu panel de control.

  2. Accede a tu Account de Facebook desde el panel de control.

  3. Selecciona de la lista desplegable la página de Facebook que deseas conectar a tu cuenta API de Vonage.

  4. Seleccione la clave API que desea utilizar.

  5. Haga clic en Configuración completa.

En este momento, tu cuenta API de Vonage y esta página de Facebook están vinculadas. El enlace entre tu Account API de Vonage y la página de Facebook no tiene fecha de vencimiento, pero puede caducar ocasionalmente. Cuando caduque, deberás volver a vincularlo siguiendo el mismo proceso.

Parte 2: Conecta tu página de Facebook a tu aplicación API de Vonage

Una vez que tu página de Facebook esté conectada a tu cuenta API de Vonage, estará disponible para ser usada por cualquiera de tus aplicaciones. Para conectar la página de Facebook a una aplicación API de Vonage:

  1. Navegue hasta su página de Applications.

  2. En la lista, haga clic en la aplicación que desee vincular. Puede filtrar utilizando el botón Capacidades y seleccionando messages para hacerlo más fácil.

  3. A continuación, seleccione la opción Canales sociales vinculados ficha.

  4. Haga clic en el botón Enlace junto a la página de Facebook a la que desea conectar su aplicación, asegurándose de que el botón Proveedor es Facebook Messenger.

Ya estás listo para recibir los mensajes que los usuarios te envíen a tu página de Facebook.

NOTA: Si en el futuro quieres vincular una aplicación diferente a esta página de Facebook, sólo tienes que repetir el procedimiento descrito en la Parte 2, para la nueva aplicación.

Poner en marcha Ngrok

Asegúrese de tener Ngrok ejecutándose para realizar pruebas localmente. Para iniciar Ngrok escriba:

ngrok http 9000

Para generar una URL temporal de Ngrok. Si eres suscriptor de pago puedes escribir:

ngrok http 9000 -subdomain=your_domain

Ten en cuenta que en este caso Ngrok desviará los webhooks de Vonage que especificaste cuando creaste tu aplicación de Vonage a localhost:9000.

Escriba su aplicación básica

Así, en el caso más sencillo, su aplicación tendría el siguiente aspecto:

Añade este código a un archivo llamado app1.py y guárdalo.

Ejecútalo localmente con:

python3 app1.py

Su aplicación base ya está en funcionamiento y lista para registrar eventos.

Interactúa con tu página de Facebook

Ahora que tu aplicación base está en funcionamiento, puedes enviar un mensaje a tu página de Facebook y comprobar que el mensaje se ha registrado. Así, si envías un mensaje básico a tu página de Facebook utilizando Messenger, verás un registro como el siguiente:

{'direction': 'inbound', 'from': {'id': '1234567890123456', 'type': 'messenger'}, 'message': {'content': {'text': 'Hello Mr. Cat', 'type': 'text'}}, 'message_uuid': 'da13a7b0-307c-4029-bbcd-ec2a391873de', 'timestamp': '2019-04-09T12:26:47.242Z', 'to': {'id': '543210987654321', 'type': 'messenger'}} 127.0.0.1 - - [09/Apr/2019 13:26:58] "POST /inbound HTTP/1.1" 200 -

Aquí encontrarás información importante que puedes utilizar para desarrollar tu aplicación y hacerla más útil.

Campo Descripción
from El ID de Facebook de la persona que envía un mensaje a tu página.
to El ID de Facebook de tu página (la página a la que la persona está enviando un mensaje).
message El mensaje que se envía.

Puede ver que el mensaje es un objeto JSON. Puedes extraer el texto del mensaje de este objeto.

Ten en cuenta que es útil registrar tanto el ID de Facebook de tu página (que puede que no conozcas), como el ID de Facebook del usuario que te envía un mensaje. Ten en cuenta que el ID de Facebook es especialmente útil si tu aplicación gestiona varias páginas de Facebook.

Cliente mínimo para enviar mensajes de Facebook Messenger utilizando Python

Actualmente, Vonage no admite oficialmente Messages y Dispatch API en el SDK de Python Server, pero nuestra REST API es totalmente compatible y el Se proporciona código Python en el proyecto para usted en una clase reutilizable. Como el código se proporciona no vamos a cubrir más en este tutorial.

El caso de uso revisado

Ha llegado el momento de analizar este caso de uso con más detalle para que pueda desarrollar su aplicación con mayor eficacia.

Imagina que un usuario envía un mensaje como "Hola" a tu página de Facebook a través de Messenger. Sin embargo, debido a las zonas horarias no estás disponible para responder al mensaje - esto puede dejar al usuario abatido. Por otro lado, sería estupendo que pudieras responder automáticamente con información útil. Por ejemplo, a un mensaje del tipo "Hola" podrías responder con "Bienvenido a T's Cat Supplies. Aquí están nuestras principales categorías de productos: juguetes, comida, medicina, bling".

Utilizando una construcción de Python como if keyword in msg puede detectar palabras clave y enviar material en función de ellas. Por ejemplo, si un usuario envía un mensaje del tipo "Hola, mis tanques necesitan clasificación", puede detectar la palabra tank y envíe información sobre sus servicios de limpieza de tanques. O si recibes un mensaje del tipo "Hola, creo que necesito una grúa para levantar nuestros tramos de tuberías". Podría enviar información sobre sus servicios de alquiler de grúas. Si no se detectan palabras clave, basta con enviar un mensaje genérico al usuario para orientarle.

Esta función de respuesta automática es útil, ya que algunas empresas tienen cientos de productos y servicios.

Otra función útil es la posibilidad de desactivar la respuesta automática, quizá para tratar directamente con un humano. Podrías incorporar comandos como auto: off y auto: on para controlar cómo interactúan tus clientes con tu página de Facebook.

En las siguientes secciones verás cómo implementar este caso de uso.

Una aplicación

Una de las estructuras de datos útiles para implementar este caso de uso es el diccionario de Python. Puedes ver un ejemplo aquí:

Para poner esto en perspectiva revisa el siguiente código:

Si el usuario envía un mensaje por Messenger y no hay ningún humano que responda, se le devuelve un menú. En el mensaje del usuario se extrae el producto y se envía el mensaje apropiado. Este código tiene un enfoque específico, pero esperemos que indique el potencial.

Quizá te preguntes si esto puede resultar molesto para el usuario si quiere hablar con una persona real. Sin embargo, la respuesta automática podría desactivarse una vez que estés conectado y puedas responder a los mensajes. El código permite al usuario utilizar los comandos auto: off y auto: on para controlar la interacción. Esto también podría ser controlado por el gestor del canal.

En el código anterior también se devuelve el producto en el que está interesado el usuario. Esto podría utilizarse si, por ejemplo, se quisiera registrar al usuario y su elección de producto en una base de datos. También podría buscar a un usuario en la base de datos para averiguar si es un cliente nuevo o si ya ha tratado con la empresa anteriormente.

Resumen

En este tutorial has visto un caso de uso en el que el usuario puede recibir información del producto automáticamente a través de Facebook Messenger. Esto se basó en la concordancia de palabras clave. El usuario también tenía la posibilidad de activar el modo de respuesta automática según sus necesidades.

Otros recursos