Diseño e Implementación de Aplicaciones para Twitter e24apps.com Alfredo Artiles @aartiles24
Acerca de e24Apps.com Congreso Internet del Mediterráneo - e24apps.com
Lo que veremos hoy <ul><li>Ecosistema de Twitter
Algunas cifras y límites
La API (Application Program Interface) de Twitter </li></ul><ul><ul><li>Tipos de API
Modelo de Datos
Algunos Métodos
Pruebas en el API Console
Implementación del bookmarklet “MeSigue?”
AutoFollowBack </li></ul></ul>Congreso Internet del Mediterráneo - e24apps.com
Ecosistema de Twitter  > 250,000 Aplicaciones Registradas <ul><li>Clientes (móbiles/web/escritorio)
SocialMedia (gestión/analítica/monitorización)
Buscadores/Directorios
Media (enlaces/fotos/vídeos/archivos)
Agregadores (noticias/clasificados/recomendaciones)
Bots </li></ul>Congreso Internet del Mediterráneo - e24apps.com
Cifras: Volumen de datos <ul><li>70 millones de tweets/día = 800 tweets/segundos
6 billones de llamadas a la API/día
Sirve 7 Terabytes/día = 10,000 CDs/día
Sirve 300GB mientras doy esta charla
Upcoming SlideShare
Loading in …5
×

Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Internet del Mediterráneo

6,989 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,989
On SlideShare
0
From Embeds
0
Number of Embeds
3,754
Actions
Shares
0
Downloads
32
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Buenas tardes campuseros!!! En primer lugar me gustaría agradecer a la Organización de la Campus y al equipo de EVENTOESFERA por haber contando con nosotros para contar un poco, desde nuestra humilde experiencia, los conocimientos que han surgido después del desarrollo de unas cuantas aplicaciones sobre la API de nuestro querido Twitter. Para ello, me acompaña mi compañero en equipo24, Alfredo Artiles, un verdadero crack y que a su joven edad me consta que lleva programando más años que matusalén. E24apps es la línea de nuestra empresa de consultriía equipo24 en la que nos dedicamos a incubar proyectos y que por ahora están fuertemente relacionados con twitter aunque no lo estarán en su totalidad en un futuro cercano
  • Algunas de las aplicaciones que hemos desarrollado y son; Locafollow: Un buscador de usuarios de twitter en función de su Localización, Bio, el contenido de sus tweets y Nombre. RetweetFollow, una aplicación que permite listar todas las personas que bien ha hecho un Retweet a una determinada URL o bien han mencionado una palabra clave en algunas de las urls Retweeteadas, Resonancers.com un ranking de las personas más resonantes basado en la cantidad de veces que han aparecido sus tweets en la portada de Tweeter y Followfriday, del que la semana pasada sacamos la versión global en folllowfriday.com que consite en un ranking de todas las recomendaciones por el famoso hashtag #followfriday o #ff realizadas entre usuarios. Todas ellas están orientadas a facilitar la tarea de encontrar a los usuarios indicados para seguir
  • El Ecosistema de Twitter lo componen cada una de las aplicaciones que seguro muchos de los que estáis aquí utilizáis y es el principal “usuario” de Twitter ya que conforma el 75% de todo el Tráfico de Twitter: Clientes como Twittdroid, Tweetdeck o Seesmic que te permiten gestionar nuestras cuentas de twitter de una manera más completa. Aplicaciones de SocialMedia de las cuales hay algunas muy buenas por aquí cerca como para la gestión de Followers como ShooTools, Tweepie, para Analítica y Monitorización Cham.tl , Buscadores y Directorios: Como las aplicaciones nuestrar que he nombrado anteriormente, Aplicaciones que nos permiten añadir medias como fotos, videos archivos a nuestros tweets como tweetpic, filesocial, tweetmeme. Hoy mismo han aparecido en algunos perfiles de twitter para añadir Medias a sus perfiles. Agregadores como Recomendar.com y Bots (Algunos gracisos como el de 5 o el de la T4)
  • Una vez visto este volumen de datos es muy importante antes de empezar tu aplicación tener en cuenta el posible volumen que tendrán los datos que deseas manejar. Por ejemplo, nosotros en Followfriday contabilizamos en los picos del Viernes 80 tweets por segundo cuando Twitter contabiliza en un día normal 750 tweets por segundo.
  • Además los usuarios registrados en tu aplicación pueden tener de 0 a más de un 1.000.000 de seguidores (@ladygaga tiene 5.000.000) por lo que una simple búsqueda entre ellos puede ir en contra de los límites de Twitter y en los propios de límites de Tus servidores al realizar consultas demasiado pesadas. Por ello es muy importante optimizar todo este tipo de consultas en función de tu base de datos.
  • Bueno, después de estos datos para entrar en materia, veamos las diferentes API’s que nos facilita twitter: Existe la API RESTful que nos permite jugar con la funcionalidad básica de Twitter: Enviar Tweet, Follow/Unfollow, Marcar como favorito, hacer RT, DM, es decir casi, todo lo que se puede hacer desde la Web. Search API: Índice debúsqueda en tiempo real (cada 10 segundos). Sólo resultados relevantes Streaming API: Conexión permanente a los Servidores de Twitter. Monitorización en tiempo real  Aparecen todos los tweets (desde 5% garden house hasta 100% phirehouse) independientemente de su calidad. Así permiten hacer el seguimiento de un grupo de hashtag o de personas @Anywhere: API javascript de acceso a la Api RESTful Oauth: Protocolo de Autenticación sin necesidad de revelar contraseñas a Apps de terceros
  • Las reglas: Suplantación de personalidad, Marca registrada el número de cuentas creadas crear cuentas con el propósito de impedir que otros utilicen dichos nombres de cuentas crear cuentas con el propósito de vender dichas cuentas utilización de información del contenido de terceras partes para actualizar y mantener cuentas con los nombres de dichas terceras partes ----------------------------------------------------------------------- Si el usuario sigue un gran número de usuarios en un corto período de tiempo; Si el usuario se hace seguidor y desigue en un corto período de tiempo, de manera particular con medios automatizados (fuga de seguidores agresiva). ------------------------------------------------------------------------- Veamos un ejemplo: http://dev.twitter.com/doc/post/statuses/update
  • La API de búsqueda también tiene límites aunque no están publicados para desanimar el abuso la misma. Para usarla es necesario incluir el USER AGENT en las peticiones HTTP. Para pedir el Whitelist es necesario tener una aplicación YA desarrollada para probar que de verdad la necesita. Containing a word: http://search.twitter.com/search.atom?q=twitter From a user: http://search.twitter.com/search.atom?q=from%3Aal3x Replying to a user (tweet starts with @mzsanford): http://search.twitter.com/search.atom?q=to%3Amzsanford Mentioning a user (tweet contains @biz): http://search.twitter.com/search.atom?q=%40biz Containing a hashtag (up to 16 characters): http://search.twitter.com/search.atom?q=%23haiku Combine any of the operators together: http://search.twitter.com/search.atom?q=happy+hour&amp;until=2009-03-24 Originating from an application: http://search.twitter.com/search.atom?q=landing+source:tweetie
  • La API de búsqueda también tiene límites aunque no están publicados para desanimar el abuso la misma. Para usarla es necesario incluir el USER AGENT en las peticiones HTTP. Para pedir el Whitelist es necesario tener una aplicación YA desarrollada para probar que de verdad la necesita. Containing a word: http://search.twitter.com/search.atom?q=twitter From a user: http://search.twitter.com/search.atom?q=from%3Aal3x Replying to a user (tweet starts with @mzsanford): http://search.twitter.com/search.atom?q=to%3Amzsanford Mentioning a user (tweet contains @biz): http://search.twitter.com/search.atom?q=%40biz Containing a hashtag (up to 16 characters): http://search.twitter.com/search.atom?q=%23haiku Combine any of the operators together: http://search.twitter.com/search.atom?q=happy+hour&amp;until=2009-03-24 Originating from an application: http://search.twitter.com/search.atom?q=landing+source:tweetie JavaScript Object Notation
  • Cachear es una de las principales recomendaciones de Twitter para no llegar a los límites, para ello deberás guardar los datos que te pidió un usuario de tu apliicación para que el siguiente para que el siguiente que pida esos mismos datos, no vuelvas a realizar una llamada a la API, sino que los consultes de tu BBDD. Otra buena opción es utilizar API de terceros los cuáles están en el whitelist o tienen esos datos cacheados y te permiten obtener más información ahorrando llamadas a la API. Cuando tenemos tablas de a partir de 1.000.000 de registros es importante evitar consutas pesadas con Joins para ello no se debe de temer a la redundancia de datos.
  • http://dev.twitter.com/doc/post/statuses/update http://dev.twitter.com/doc/post/friendships/create http://dev.twitter.com/doc/get/users/show En el browser http://dev.twitter.com/doc/get/users/lookup En el browser http://dev.twitter.com/doc/post/direct_messages/new http://dev.twitter.com/doc/post/account/update_profile
  • http://dev.twitter.com/doc/post/statuses/update http://dev.twitter.com/doc/post/friendships/create http://dev.twitter.com/doc/get/users/show En el browser http://dev.twitter.com/doc/get/users/lookup En el browser http://dev.twitter.com/doc/post/direct_messages/new http://dev.twitter.com/doc/post/account/update_profile
  • http://dev.twitter.com/doc/post/statuses/update http://dev.twitter.com/doc/post/friendships/create http://dev.twitter.com/doc/get/users/show En el browser http://dev.twitter.com/doc/get/users/lookup En el browser http://dev.twitter.com/doc/post/direct_messages/new http://dev.twitter.com/doc/post/account/update_profile
  • http://dev.twitter.com/doc/post/statuses/update http://dev.twitter.com/doc/post/friendships/create http://dev.twitter.com/doc/get/users/show En el browser http://dev.twitter.com/doc/get/users/lookup En el browser http://dev.twitter.com/doc/post/direct_messages/new http://dev.twitter.com/doc/post/account/update_profile
  • http://dev.twitter.com/doc/post/statuses/update http://dev.twitter.com/doc/post/friendships/create http://dev.twitter.com/doc/get/users/show En el browser http://dev.twitter.com/doc/get/users/lookup En el browser http://dev.twitter.com/doc/post/direct_messages/new http://dev.twitter.com/doc/post/account/update_profile
  • http://dev.twitter.com/doc/post/statuses/update http://dev.twitter.com/doc/post/friendships/create http://dev.twitter.com/doc/get/users/show En el browser http://dev.twitter.com/doc/get/users/lookup En el browser http://dev.twitter.com/doc/post/direct_messages/new http://dev.twitter.com/doc/post/account/update_profile
  • Aunque el día de mañana se centrará en jugar con el código, también será muy útil para toda la gente interesada en el Social Media ya que pondremos la aplicación para descargar y en el taller se explicará como utilizar la Herramienta
  • Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Internet del Mediterráneo

    1. 1. Diseño e Implementación de Aplicaciones para Twitter e24apps.com Alfredo Artiles @aartiles24
    2. 2. Acerca de e24Apps.com Congreso Internet del Mediterráneo - e24apps.com
    3. 3. Lo que veremos hoy <ul><li>Ecosistema de Twitter
    4. 4. Algunas cifras y límites
    5. 5. La API (Application Program Interface) de Twitter </li></ul><ul><ul><li>Tipos de API
    6. 6. Modelo de Datos
    7. 7. Algunos Métodos
    8. 8. Pruebas en el API Console
    9. 9. Implementación del bookmarklet “MeSigue?”
    10. 10. AutoFollowBack </li></ul></ul>Congreso Internet del Mediterráneo - e24apps.com
    11. 11. Ecosistema de Twitter > 250,000 Aplicaciones Registradas <ul><li>Clientes (móbiles/web/escritorio)
    12. 12. SocialMedia (gestión/analítica/monitorización)
    13. 13. Buscadores/Directorios
    14. 14. Media (enlaces/fotos/vídeos/archivos)
    15. 15. Agregadores (noticias/clasificados/recomendaciones)
    16. 16. Bots </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    17. 17. Cifras: Volumen de datos <ul><li>70 millones de tweets/día = 800 tweets/segundos
    18. 18. 6 billones de llamadas a la API/día
    19. 19. Sirve 7 Terabytes/día = 10,000 CDs/día
    20. 20. Sirve 300GB mientras doy esta charla
    21. 21. Velocidad de escritura disco duro ~80MB/seg, almacenar 7 TB en un disco tomaría 24.3 horas </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    22. 22. Cifras: Piensa en grande <ul><li>> 160 millones de usuarios
    23. 23. 97% de usuarios tienen menos de 100 seguidores
    24. 24. Hay usuarios que tiene más de 1 millón de seguidores
    25. 25. 800 tweets/sec = 160KB/sec = 9MB/min = 12 GB/día
    26. 26. Crecimiento de un 752% en 2009 y 1358% en 2009 </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    27. 27. APIs de Twitter <ul><li>REST(Representational State Transfer) API : funcionalidad básica de Twitter: enviar tweets, seguir, etc.
    28. 28. Search API : Índice de búsqueda en tiempo real. Solo resultados relevantes.
    29. 29. Streaming API : conexión permanente a los servidores de Twitter. Monitorización en tiempo real. Aparecen todos los tweets independientemente de su calidad.
    30. 30. @Anywhere : API javascript de acceso a la REST API
    31. 31. Oauth : Protocolo de autenticación sin necesidad revelar contraseñas a Apps de terceros. </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    32. 32. Conoce los Límites (REST API) <ul><li>175 llamadas/hora a la API, por usuario o por IP(sin autenticar).
    33. 33. Whitelist 20,000 llamadas/hora (https://twitter.com/help/request_whitelisting)
    34. 34. 250 DMs/día
    35. 35. 1000 tweets/día
    36. 36. 4 Cambios email/hora
    37. 37. 1000 follows día* y hasta 2000*
    38. 38. No olvides las reglas: http://support.twitter.com/forums/82075/entries/72688 </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    39. 39. Conoce los Límites (SearchAPI) <ul><li>No está publicada pero > que REST API
    40. 40. Introduce User-Agent en tus peticiones HTTP
    41. 41. Search Whitelisting (No para clouds)
    42. 42. Sólo Tweets Relevantes </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    43. 43. Algunos ejemplos - Search API <ul><li>Tweets que contienen una palabra: http://search.twitter.com/search.atom?q=twitter </li></ul><ul><li>O un hashtag (up to 16 characters): http://search.twitter.com/search.atom?q=%23cpvalencia </li></ul><ul><li>Combinar algún operador: http://search.twitter.com/search.atom?q=%23cpvalencia&until=2010-07-27 </li></ul><ul><li>Que se originen desde una aplicación: http://search.twitter.com/search.atom?q=%23cpvalencia&source:tweetdeck </li></ul><ul><li>Fundamentales: Rpp, page y sinceid </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    44. 44. @Anywhere – make it simple Congreso Internet del Mediterráneo - e24apps.com
    45. 45. El Modelo de Datos <ul><li>Todo se trata de usuarios y tweets y las relaciones entre ellos (ver mapa de un tweet: http://e24.li/mw)
    46. 46. Cachea y vence a los límites
    47. 47. Reutiliza APIs de terceros y vuelve a vencer a los límites
    48. 48. No temas a la redundancia de datos </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    49. 49. Creando una Aplicación <ul><li>Visitar http://dev.twitter.com/apps/new y registrar la aplicación
    50. 50. Visitar http://dev.twitter.com/console para probar algunos métodos de la API </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    51. 51. Bookmarklet MeSigue? <ul><li>Herramienta que nos permitirá desde un perfil de usuario en Twitter.com conocer si éste usuario nos sigue.
    52. 52. Conocimientos básicos para crear un bookmarklet
    53. 53. Mootools Javascript Framework http://mootools.net/
    54. 54. Método: friendships/exists </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    55. 55. Bookmarklets <ul><li>Marcador que en lugar de apuntar a una URL, hace referencia a un código JavaScript.
    56. 56. Básico:
    57. 57. javascript:location.href='http://trends.google.com/websites?q='%20+%20location.href%20+%20'%2F%2C+www.mashable.com&sa=N
    58. 58. Avanzado:
    59. 59. var script = document.createElement(&quot;script&quot;); </li></ul>script.src=&quot;http://www.example.com/javascript.js&quot;; document.body.appendChild(script); Congreso Internet del Mediterráneo - e24apps.com
    60. 60. Instalando MeSigue? <ul>http://www.bitacoradewebmaster.com javascript:function%20loadScript(scriptURL)%20{%20var%20scriptEl%20=%20document.createElement('SCRIPT');%20scriptEl.setAttribute('language',%20'JavaScript');%20scriptEl.setAttribute('src',%20scriptURL);%20document.body.appendChild(scriptEl);}%20loadScript('http://www.bitacoradewebmaster.com/wp-content/misc/mesigue.js');void(0); </ul>Congreso Internet del Mediterráneo - e24apps.com
    61. 61. AutoFollowBack <ul><li>Bot que devuelve el follow siguiendo una serie filtros de calidad.
    62. 62. PHP + Zend Framework
    63. 63. Métodos API Twitter: </li></ul><ul><ul><li>statuses/followers
    64. 64. friendships/create </li></ul></ul>Congreso Internet del Mediterráneo - e24apps.com
    65. 65. Filtros de AutoFollowBack <ul><li>Número followers
    66. 66. Número following
    67. 67. Número tweets
    68. 68. Número de listas
    69. 69. Ratio Followers / Following
    70. 70. Si tiene avatar/bio/location/url
    71. 71. Idioma </li></ul>Congreso Internet del Mediterráneo - e24apps.com
    72. 72. Más recursos útiles <ul><li>Web de desarrolladores: http://dev.twitter.com
    73. 73. Status de la API: http://dev.twitter.com/status
    74. 74. Grupo de desarrolladores: http://groups.google.com/group/twitter-development-talk?pli=1
    75. 75. Anuncios de la API: http://groups.google.com/group/twitter-api-announce
    76. 76. Bibliotecas para Oauth: http://dev.twitter.com/pages/oauth_libraries
    77. 77. Cliente CURL con soporte para Oauth: http://github.com/marcel/twurl
    78. 78. Bibliotecas: http://dev.twitter.com/pages/libraries
    79. 79. Tutoriales: http://www.newwebplatform.com/tips-and-tutorials/Twitter
    80. 80. Blog de los ingenieros de Twitter: http://engineering.twitter.com/
    81. 81. Bookmarklets: http://www.bitacoradewebmaster.com/2009/01/18/como-crear-un-bookmarklet/ </li></ul>Congreso Internet del Mediterraneo - e24apps.com
    82. 82. Muchas Gracias <ul>Códigos: http://www.bitacoradewebmaster.com/wp-content/misc/cintermed.zip Alfredo Artiles Larralde (@aartiles24) e24Apps.com Network <ul><li>http://www.followfriday.com
    83. 83. http://www.locafollow.com
    84. 84. http://www.resonancers.com
    85. 85. http://www.retweetfollow.com </li></ul></ul>Congreso Internet del Mediterraneo - e24apps.com

    ×