Introducción
El componente FlowEngine de Plataforma ofrece un gran número de conectores para trabajar con redes sociales, concretamente incluye 2 componentes, uno para “escuchar” lo que pasa en Twitter (por ejemplo recibiendo los tuits sobre un hashtag o hacer una búsqueda) y otro para publicar tuits:
En este post vamos a ver cómo usar estos componentes para ver en streaming lo que se dice en Twitter alrededor de un tema y posteriormente publicar un tuit con información recibida desde un servicio externo.
Paso 1: Crear APP en Portal Developer en Twitter
Lo primero que debemos hacer es crearnos una cuenta en Twitter. Una vez creada la cuenta iremos al Portal del Developer de Twitter en https://developer.twitter.com/
Una vez dentro iremos a la sección Apps y dentro seleccionaremos Create an App:
Nos pedirá que confirmemos que queremos crear una cuenta de desarrollador y completar un conjunto de datos y tras completar nos llegará un mail para confirmar que queremos crear una cuenta de desarrollador:
Tras esto ya puedo crear mi App y conseguir las Keys:
Como indican en la web debo guardar estas Keys ya que tendré que configurarlas en los componentes del FlowEngine:
Después de esto puedo probar el API REST de Twitter pulsando el botón Test an endpoint.
Como indican puedo probarlo con el comando:
curl -X GET -H "Authorization: Bearer <BEARER TOKEN>" "https://api.twitter.com/2/tweets/440322224407314432"
Tras probar esto iré al Dashboard, dentro puedo configurar mi App
Iré a la sección Keys and tokens y seleccionaré Generate Access Token and Secret:
Que guardaré también junto con el API Key y el API Key Secret
Hasta hace unos meses con esto he concluido la configuración necesaria en Twitter, pero con el cambio en la política de acceso a las APIs de Twitter al registrarnos lo haremos con el nivel Essential que no permite el acceso al API 1.1 que es la que usa el componente Node-Red del FlowEngine.
Tendremos que ir al Portal y solicitar el Apply for Elevated que ya nos da permiso para acceder al API v1.1:
Os pedirá una serie de información para habilitaros el acceso a este nivel, como el uso que queremos hacer, podemos indicar que queremos probar a recoger tuits con Node-red.
Paso 2: Configurar Componente Twitter en Flowengine y recuperar y publicar Tuits
Lo primero será tener un usuario en la instancia de Plataforma que quiera usar. Para el ejemplo usaré el entorno CloudLab de Plataforma (entorno gratuito con fines de experimentación). Así que iré a https://lab.onesaitplatform.com/ y si no tengo un usuario lo crearé con el botón SIGN UP. Es importante que cree un usuario tipo DEVELOPER:
Con el usuario creado (recibiré un mail para validar la creación) ya puedo logarme en el Control Panel de Plataforma:
Una vez dentro iré a la opción de menú DEVELOPMENT>My Flows
Si es la primera vez que entro veré que no tengo creado un dominio del FlowEngine, así que pulsaré el botón + para crearlo:
Le daré un nombre y pulsaré Create:
Ahora ya veré mi dominio, que por defecto está parado, así que lo arrancaré primero:
Una vez arrancado puedo acceder a él con el botón de View It:
Finalmente accederé a la Paleta del FlowEngine, empezaré por seleccionar que no quiero crear un proyecto:
Puedo maximizar el área de trabajo con el botón de la esquina derecha:
Ahora buscaré los componentes de Twitter con el buscador y arrastraré el de Twitter In a la paleta:
El triángulo me indica que debo configurarlo, para esto pincho 2 veces sobre él para que aparezca la ventana de configuración.
En esta debo configurar los credenciales de Twitter que obtuvimos en el paso 1:
Después ya puedo configurar lo que quiero escuchar, por ejemplo puedo elegir una tendencia, en el ejemplo vamos a elegir #TheBatman en el día de su estreno en España:
Después configuraré el nodo debug para depurar por consola lo que llega:
Y para probarlo simplemente hago un DEPLOY:
Y ya veo en streaming los tuits sobre el tópico:
Para pararlo puedo eliminar el criterio de búsqueda.
Igualmente puedo publicar un tuit con el componente Twitter Out:
En el FlowEngine es muy fácil componer una lógica de negocio de modo que ante ciertos eventos (la llegada de un evento a una Entidad/Ontología por ejemplo) se componga un mensaje que se publique.
En este sencillo ejemplo simplemente publicaremos un texto, para eso usaremos el componente Inject configurado para inyectar un texto:
Próximos pasos
En otro post posterior ampliaremos el uso de Twitter para crear un sencillo Bot que sea capaz de darnos la información meteorológica de la ciudad por la que preguntemos.