다음을 통해 공유


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!

Comments

  • Anonymous
    October 25, 2014
    Hola, estoy viendo esto y de verdad esta genial, muchas gracias por su trabajo, seguiré más de cerca todo esto, gracias nuevamente

  • Anonymous
    October 26, 2014
    Hola, quisiera saber si le darán continuidad al proyecto, saludos

  • Anonymous
    October 28, 2014
    Francisco: Muchas gracias! Espero que te sirva m10.com.mx: Sí, tenemos pensado pronto hacerle varias mejoras e inclusive hacer similares para otras redes sociales. El aporte de la comunidad tambien es bienvenido!!

  • Anonymous
    November 18, 2014
    Marcelo, no me aparece la opción de "Storage" en el Visual Studio 13 y me dice que el proyecto no es compatible. ¿Que puede ser?

  • Anonymous
    November 18, 2014
    @Nicolás, tenés instalado el SDK de Azure?

  • Anonymous
    November 20, 2014
    Nicolas, revisa que tengas el explorador de servidores Azure, si no lo tienes tienes que tener el sdk de azure y volver a comprobar

  • Anonymous
    November 25, 2014
    Podrían compartir la página de la documentación de la API, gracias!

  • Anonymous
    November 25, 2014
    Todo esta bien, a la hora de ejecutar el query con mis hashtags me regresa los tweets, sin embargo falla cuando quiere darle fav, y me sale: Cannot evaluate expression because the current thread is in a stack overflow state. Aqui es donde truena: TwitterServiceInstance.FavoriteTweet(new FavoriteTweetOptions { Id = tweet.Id );

  • Anonymous
    November 25, 2014
    Hola Marcelo, sugiero que se utilice otra API, pues la documentación dice lo siguiente: This project is no longer actively developed by its creator. v2.3.1 is the final release. If someone forks this project and proves active and interested ongoing development, I will transfer this repo to them. Forks must respect OSS and copyright law with respect to attribution, etc., etc. github.com/.../tweetsharp Posiblemente por eso tengo problemas con los FAVs Gracias!

  • Anonymous
    November 25, 2014
    Marcelo, disculpa ya arregle mi problema, la API aún funciona, lo que pasa es que cometí el error de no habilitar los privilegios de escritura para mi app de twetter. Cuando se cambia a Read, write, and direct messages hay que darle a regenerar el ticket de acceso para que lo actualice. Saludos

  • Anonymous
    December 01, 2014
    @Arturo gracias!! De todas formas estoy de acuerdo, tendríamos que actualizar la API para agregar nuevas funcionalidades. Saludos!

  • Anonymous
    January 25, 2015
    It did not work ! I followed the tutorial step by step, but at the end when I published, there is a message which indicate what "Instance 0 of AsyncTwitterBot role is busy" :(

  • Anonymous
    January 25, 2015
    It is ok now but any changes on my twitter account... When there is a hashtag on Twitter that i put in VS, my twitter doesn't put it in favorite. It seems that the plugin doesn't work but thank you for the idea..

  • Anonymous
    January 29, 2015
    Marcelo, he seguido el tutorial paso a paso, he creado la app con permisos, he creado el storage y lo he publicado y no funcino. Hay que hacer algo mas aparte de lo que indicas en el tutorial?. Saludos

  • Anonymous
    January 30, 2015
    @Dosn and @Xesco, Thanks for the feedback guys, we'll look into it and see how can we get it fixed and improved. Stay tuned. Marcelo