Ganar visibilidad en Twitter: potencialo con Azure

Hola a todos.. hoy les vamos a compartir una idea en la que estamos trabajando con Ale Banzas. Lo que estamos armando consiste en un programa que corre cada determinada cantidad de tiempo en un Azure Worker Role. Este programa, se conecta a la API de Twitter y le da de forma automática “favorite” a tweets que tengan un hashtag que nosotros le indiquemos.

Esto es súper útil para lograr visibilidad sobre temas particulares que a nosotros nos interesen. Yo tengo este worker corriendo en un servicio propio, y obtuve bastantes nuevos seguidores al cabo de algunas corridas.

Su funcionamiento en 140 caracteres

Sencillo: le indicamos a qué hashtags queremos darle favorite. El worker corre cada 15 minutos (por default, se puede cambiar), y busca todos los últimos tweets con ese hashtag. Esos tweets (sus ids) son guardados en una cola de mensajería (Azure Queue) para luego ser procesados asincrónicamente.

Hay otro proceso que también corre cada determinado tiempo, este proceso lo que hace es tomar esos tweets de la cola de mensajería y procesarlos, es decir, darles favorite.

Un pequeño diagrama del funcionamiento:

Presentation1

 

Cómo implementarlo

En primer lugar, necesitas instalar Visual Studio 2013 lo cual podés hacer desde acá. También, vas a necesitar una cuenta en Microsoft Azure. Si aún no tenés una, acá te dejo opciones para que empieces gratis:

Una vez seteado el ambiente. Descargate la última versión del código de acá: https://1drv.ms/1qR0loc.

Si preferís no instalar Visual Studio y correrlo desde una máquina virtual en Azure, en la primer parte de esta guía podés ver cómo hacerlo.

Descargado el archivo .zip del código, buscamos el archivo .sln (solution, y doble click ahí). Deberíamos ver algo como esto:

image

 

Usar las credenciales de nuestra cuenta

Lo que necesitamos hacer ahora es registrarnos como desarrolladores de Twitter, y avisarle que nuestra aplicación va a estar consumiendo su API. Para eso vamos a https://apps.twitter.com/ y le damos click a Create new App. Llenamos los datos los cuales son sencillos, y le damos Create.

Buscamos en Application Settings el link de manage API keys:

image

image

Nos copiamos esos 4 valores, los cuales debemos reemplazar en WorkerRole.cs:

image

Lo que estamos haciendo acá, es hacer que los tweets salgan de nuestra cuenta.

Elegir nuestros propios hashtags

image

Ahora debemos elegir cuales son los hashtags a los que vamos a darle favorite. Eso simplemente lo hacemos editando la lista que vemos en pantalla.

NOTA: Sí, obvio, ya sabemos que esto es un asco. Esto es una prueba de concepto y te invito a que estos valores los saques de configuración, de la base, de otro storage y de cualquier lugar que evite hardcodearlo Sonrisa.

Crear cuenta de storage en Azure

Ahora necesitamos crear una cuenta de storage en donde guardaremos los tweets a procesar. Podemos hacerlo sin salir de Visual Studio de la siguiente forma:

image

image

Elijo el data center de Brasil por motivos de latencia. Podés probar el que quieras.

image

Una vez creado el storage, lo que debemos hacer es indicar en la configuración, que utilice estos mismos. Para eso, tomamos las credenciales y las reemplazamos en el archivo de config:

image

Lo copiamos, y reemplazamos detrás de value=”acá ponés el valor” .

image

Proceso de publicación del worker role

Esta parte es sencilla, así que va todo con imágenes:

image

image

image

image

image

image

image

image

Le damos Publish y al cabo de unos minutos ya estará subido. Acordate siempre que podes manejarlo desde https://manage.windowsazure.com.

Comentarios finales y oportunidades de mejora

Como te contaba más arriba, esto es una idea que nos surgió y decidimos probar. Hay miles de otras cosas que se pueden hacer con esta API, desde retweets automáticos hasta el consumo de la streaming API. Si se te ocurre algo en particular para que implementemos, dejanos tu feedback en los comentarios.

Tené en cuenta también que la API de Twitter acepta hasta cierto tu número de requests o pedidos por minuto, y por eso vas a ver los delays en los workers. Te recomiendo que no cambies esos números porque Twitter puede llegar a bloquearte por hacer tantos requests.

Espero que te sirva!