Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

El componente FlowEngine de Plataforma ofrece un gran número de conectores para trabajar con redes sociales. Concretamente, concretamente incluye 2 dos 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 , verás cómo usar estos componentes para:

  • Escuchar lo que se dice en Twitter alrededor sobre de un tema.

  • Almacenar la información de ese un tuit en Plataforma.

  • Publicar un Tuit tuit con información recibida desde un servicio externo (OpenWeatherMaps).

Paso 1: Crear APP en Portal Developer en Twitter

Lo primero que debemos debes hacer es crearnos crearte una cuenta en Twitter. Una vez creada la cuenta iremos , ve al Portal del Developer de Twitter en https://developer.twitter.com/

...

Una vez dentro iremos , ve a la sección Apps y dentro seleccionaremos selecciona Create an App:

...

Nos Te pedirá que confirmemos confirmes que queremos quieres crear una cuenta de desarrollador, y completar que completes un conjunto de datos y tras completar nos . Tras completarlos, te llegará un mail para confirmar que queremos quieres crear una cuenta de desarrollador:

...

 Tras esto, ya puedo puedes crear mi tu App y conseguir las Keys:

...

 

Como indican en la web debo , debes guardar estas Keys, ya que tendré tendrás que configurarlas en los componentes del FlowEngine:

...

 

Después de esto puedo , puedes probar el API REST de Twitter pulsando el botón Test an endpoint.

Como indican puedo se indica, puedes probarlo con el comando:

curl -X GET -H "Authorization: Bearer <BEARER TOKEN>" "https://api.twitter.com/2/tweets/440322224407314432"

...

 

Tras probar esto iré , ve al Dashboard. Dentro, dentro puedo podrás configurar mi tu App.

...

Iré Ve a la sección Keys and tokens y seleccionaré selecciona Generate Access Token and Secret:

...

Que guardaré también También debes guardarla, junto con el API Key y el API Key Secret:

...

 IMPORTANTEIMPORTANTE: Hasta hace unos meses con esto he concluido , esto era suficiente para terminar la configuración necesaria en Twitter; pero, pero con el cambio en la política de acceso a las APIs de Twitter, al registrarnos lo haremos , debes hacerlo con el nivel Essential que no permite el acceso al API 1.1 que es la que usa el componente Node-Red del FlowEngine.

...

Así que, para que funcione la comunicación con Twitter tendremos , tendrás que ir al Portal y solicitar el Apply for Elevated que ya nos te da permiso para acceder al API v1.1:

...

 

Os Te pedirá una serie de información para habilitaros habilitarte el acceso a este nivel, como el uso que queremos hacer, podemos . Puedes indicar que queremos quieres probar a recoger tuits con Node-red. 

...

Lo primero será tener un usuario en la instancia de Plataforma que quiera quieras usar. Para el ejemplo usaré , usarás el entorno CloudLab de Plataforma (entorno gratuito con fines de experimentación). Así que iré ve a https://lab.onesaitplatform.com/ y, si no tengo tienes un usuario lo crearé , créalo con el botón SIGN UP. Es importante que cree Ten en cuenta que debes crear un usuario tipo DEVELOPER:

...

 

Con el usuario creado (recibiré recibirás un mail para validar la creación), ya puedo logarme puedes logarte en el Panel de Control Panel de la Plataforma:

...

 

Una vez dentro iré , ve a la opción de menú DEVELOPMENT>My DEVELOPMENT > My Flows:

...

Si es la primera vez que entro veré entras, verás que no tengo tenemos creado un dominio del FlowEngine, así que pulsaré pulsa el botón + para crearlo:

...

Le daré Dale un nombre y pulsaré pulsa Create:

...

Ahora ya veré mi puedes ver tu dominio, que por defecto está parado, así que lo arrancaré primero, arráncalo:

...

Una vez arrancado puedo , puedes acceder a él con el botón de View It:

...

 

Finalmente accederé , accede a la Paleta del FlowEngine, empezaré . Empieza por seleccionar que no quiero quieres crear un proyecto:

...

Puedo Puedes maximizar el área de trabajo con el botón de la esquina derecha:

...

 

Ahora buscaré busca los componentes de Twitter con el buscador y arrastraré arrastra el de Twitter In a la paletaal lienzo:

...

El triángulo me indica que debo debes configurarlo, para esto pincho 2 . Para esto, pincha dos veces sobre él para que aparezca la ventana de configuración.

...

En esta debo configurar los ella, debes configurar las credenciales de Twitter que obtuvimos obtuviste en el paso 1:

...

Después, ya puedo puedes configurar lo que quiero quieres escuchar, por ejemplo puedo . Por ejemplo, puedes elegir una tendencia, en . En el ejemplo vamos , vas a elegir #TheBatman en el día de su estreno en España:

...

 

Después configuraré , configura el nodo debug para depurar por consola lo que llega:

...

Y para probarlo, simplemente hago haz un DEPLOY:

...

 

Y ya veo verás en streaming los tuits sobre el tópico:

...

 

Para pararlo puedo , puedes eliminar el criterio de búsqueda.

 

 

Igualmente puedo , podemos 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 que sucedan (la llegada de un evento a una Entidad/Ontología por ejemplo), se componga y publique un mensaje que se publique.

En este sencillo ejemplo, simplemente publicaremos publicarás un texto, para eso usaremos . Para eso, usa el componente Inject configurado para inyectar un texto:

...

Tras esto haremos , haz el despliegue y pulsaremos pulsa el botón del componente Inject.

Tras esto podremos , podrás ver el mensaje:

...

Paso

...

3: Almacenar información de los tuits en una Entidad de Plataforma

Si volvemos vuelves al ejemplo en el que estaba estabas escuchando lo que se decía sobre The Batman:

...

y pongo pones un componente debug configurado para que saque todo el objeto msg:

...

Entonces veré entonces verás en la pestaña debug una estructura como estaésta:

...

Para insertar estos datos en Plataforma puedo , podemos crear una Entidad con estos atributos: topic, payload, lang, tweet, o usar la capacidad de Plataforma para crear una Entidad a partir de un JSON, esta . Esta forma es mucho más sencilla cuando partimos de un JSON, como es el caso.

Desde la pestaña Debug puedo , puedes seleccionar uno de los objetos con el botón Copy value:

...

Si pego pegas el contenido en un editor veré , verás algo como esto:

...

Como quiero quieres usar este JSON como ejemplo para crear mi nuestra Entidad puedo , puedes eliminar los atributos dentro del tweet, de modo que dejaré quedará una estructura JSON como esta:

Code Block
{
    "topic": "tweets/playlsit",
    "payload": "robert pattinson as batman &gt;&gt;&gt;&gt;&gt;&gt;&gt;",
    "lang": "en",
    "tweet": {},
    "_msgid": "31a45aac.7fc556"
}

Ahora voy ve a la opción DEVELOPMENT/My Entities en el Control Panel y selecciono selecciona el botón + para crear una nueva Entidad:

...

Dentro me encuentro con encontramos varias opciones, en . En este caso me , te interesa la opción Create From File para usar el JSON como base para crear mi tu Entidad:

...

Al seleccionarla puedo , puedes copiar el JSON que he has dejado como plantilla y pulsar el botón Generate JSON-Schema:

...

Después pulso , pulsa Create y completo completa los datos de mi tu Entidad:

...

Una vez creada puedo , puedes volver al FlowEngine para continuar con mi tu flujo.

Buscaré Busca el componente onesaitplatform-insert y lo arrastraré, luego lo configuro con mi arrástralo. Después, configúralo con tu Entidad:

...

Si lo conecto conectas directamente a la salida de Twitter y debugeo debugeas la salida veré , verás que obtengo obtienes un error:

...

Esto es porque la salida de los componentes en el FlowEngine es el msg.payload, que en nuestro tu caso es simplemente un texto:

...

mientras que el nodo Insert espera una estructura JSON completa como hemos has definido, ya que me te interesa almacenar toda la info del tuit, incluido el usuario que tuitea.

La forma de resolver esto es incluir un nodo Function entre ambos, de esta forma:

...

Donde donde el nodo Function convierte el msg a un payload en la salida:

...

Si ahora hago haces el DEPLOY veré , verás que la inserción es correcta:

...

Para comprobar que de verdad se está almacenando esta información en una Entidad accederé , accede a la herramienta Query Tool en TOOLS>Query Tool.

Dentro puedo Desde allí, puedes consultar los datos almacenados, basta . Basta con que seleccione la Entidad y configure configures una consulta, o use uses la consulta por defecto:

...

Siguientes pasos

Una vez tenemos tienes los datos almacenados en Plataforma puedo , puedes, por ejemplo:

  • Explotar los datos con el Dashboard Engine por ejemplo mostrando tuits por zona, usuarios que más tuitean sobre un tema., …

  • Crear un Modelo con los Notebooks haciendo un análisis del sentimiento sobre los tuits, una distribución geográfica, …

  • Publicar un API REST con el API Manager con información agregada sobre un tema concreto

...

  • .