Your SlideShare is downloading. ×
0
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
APIs de medios sociales
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

APIs de medios sociales

1,203

Published on

Introducción a las APIs de medios sociales, con ejemplos de acceso a Twitter y Facebook. Leer en combinación con la presentación "Tecnologías web y Python" …

Introducción a las APIs de medios sociales, con ejemplos de acceso a Twitter y Facebook. Leer en combinación con la presentación "Tecnologías web y Python" http://www.slideshare.net/rvr/tecnologas-web-python

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,203
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. < APIs demedios sociales /> Víctor R. Ruiz <rvr@linotipo.es> Tenerife, 18 de noviembre de 2011
  • 2. Llamadas remotas
  • 3. RSS: Sindicación Sólo lectura
  • 4. Blogger APILectura/Escritura (XML-RPC) http://sourceforge.net/projects/blogalia/files/Blogatex/0.1/
  • 5. APIs ReST HTTP + XML/JSON• Transferencia de Estado Representado• Protocolo cliente/servidor sin estado.• HTTP.• Operaciones definidas. • POST, GET, PUT y DELETE.• Respuestas: XML/JSON
  • 6. APIs ReST HTTP + XML/JSONGET http://web.api/usuario?id=20<usuario> <id>20</id> <nombre>Juan Pérez Fernández</nombre> <web>http://fernandez.perez.juan/</web></usuario>
  • 7. APIs ReST HTTP + XML/JSONGET http://web.api/usuario?id=20{ “usuario” : { “id” : 20, “nombre” : “Juan Pérez Fernández”, “web” : “http://fernandez.perez.juan/” }}
  • 8. Un mundo de APIs http://www.programmableweb.com/apis
  • 9. Twitter API
  • 10. Twitter API https://dev.twitter.com/
  • 11. Twitter API• Twitter API. • ReST, JSON.• Búsquedas. • Search API. • Streaming API.• Usuarios. • Lectura/escritura. • Autentificación OAuth.
  • 12. Twitter API: Límites• Sin autentificar. • 150 llamadas/hora por IP.• Autentificadas (OAuth). • 350 llamadas/hora por token.
  • 13. Twitter: Search APIGET http://search.twitter.com/search.json?q=El%20Hierro
  • 14. Twitter: Search API Anatomía de la respuesta{ "completed_in": 0.093, "max_id": 137515427810131968, "max_id_str": "137515427810131968", "next_page": "?page=2&max_id=137515427810131968&q=El%20Hierro", "page": 1, "query": "El+Hierro", "refresh_url": "?since_id=137515427810131968&q=El%20Hierro", "results": [ ... ], "results_per_page": 15, "since_id": 0, "since_id_str": "0"}
  • 15. Twitter: Search API Anatomía de un tweet{ "created_at": "Fri, 18 Nov 2011 13:00:07 +0000", "from_user": "oydaragua", "from_user_id": 287701318, "from_user_id_str": "287701318", "from_user_name": "LaOfertaylaDemandaA", "geo": null, "id": 137515427810131968, "id_str": "137515427810131968", "iso_language_code": "es", "metadata": { "result_type": "recent" }, "profile_image_url": "http://a1.twimg.com/profile_images/1332147157/Sin_t_tulo-1_normal.jpg", "source": "&lt;a href=&quot;http://autotuits.com&quot;rel=&quot;nofollow&quot;&gt;autotuits&lt;/a&gt;", "text": "Todo para el herrero puerta de metal fondeadas para doblecerradura desde 2500Bs,laminas,tubos de hierro,cabillas torneadas,angulos ymas", "to_user_id": null, "to_user_id_str": null}
  • 16. Twitter: Search API Parámetros de búsquedaq: Cadena de búsqueda. ?q=ULLlang: Filtro por idioma. ?lang=essince_id: Resultados con el ID mayor que.rpp: Tweets por página de resultados. ?rpp=50 https://dev.twitter.com/docs/api/1/get/search
  • 17. Twitter: Search API Operadores de búsquedael OR hierro Resultados con cualquiera de lasdos palabras.“el hierro” Búsqueda exacta.-el hierro Resultados con “hierro” pero sin“el”.from:usuario Escritos por el usuario.@usuario Menciones al usuario. https://dev.twitter.com/docs/using-search
  • 18. Twitter + Python Twython• Librería de acceso a Twitter en Python.• Licencia MIT (software libre).• Por Ryan McGrath.• Disponible en github/ryanmcgrath/ twython.
  • 19. Twython Búsquedas# Cargar libreríafrom twython import Twython# Instanciar twythontwitter = Twython()# Hacer búsquedaresultados = twitter.search(q=”El Hierro”)print resultados
  • 20. TwythonBúsquedas: Diccionario de resultados# Cargar libreríafrom twython import Twython# Instanciar twythontwitter = Twython()# Hacer búsquedaresultados = twitter.search(q=”El Hierro”)# resultados es un diccionarioprint “Búsqueda: “, resultados[‘query’]print “Siguiente página: ”, resultados[‘next_page’]
  • 21. Twython Búsquedas: Resultados por página# Cargar libreríafrom twython import Twython# Instanciar twythontwitter = Twython()# Hacer búsqueda, 100 resultados por páginaresultados = twitter.search(q=”El Hierro”, rpp=100)# Mostrar número de tweets obtenidos en la búsquedaprint len(resultados[‘results’])
  • 22. Twython Búsquedas: Recorrer tuits# Cargar libreriafrom twython import Twython# Buscar en Twittertwitter = Twython()resultados = twitter.search (q="El Hierro")# Recorrer resultadosfor tweet in resultados[results]: print tweet[from_user], tweet[text]
  • 23. TwythonBúsquedas: Guardar resultados (CSV) # Cargar librerías import csv from twython import Twython # Crear archivo CSV fichero = open(tweets.csv, wb) fichero_csv = csv.writer(fichero) # Buscar en Twitter twitter = Twython() resultados = twitter.search (q="El Hierro") # Recorrer resultados for tweet in resultados[results]:    # Crear lista    row = [tweet[from_user], tweet[created_at]]    # Escribir tweet en fichero csv    fichero_csv.writerow(row) fichero.close()
  • 24. Librerías para Twitter• Lista de librerías en dev.twitter.com• Flash, C++, Clojure, Erlang, Java, JavaScript, .NET, Objective-C, Perl, PHP, Python, Ruby, Scala.
  • 25. Facebook API
  • 26. Facebook API https://developers.facebook.com/
  • 27. Facebook API• Graph API. • ReST, JSON. • Búsqueda y lectura/escritura.• Usuarios. • Lectura/escritura. • Autentificación OAuth.
  • 28. Graph API: Límites• Autentificadas (OAuth). • 600 llamadas cada 600 segundos.
  • 29. Facebook: Graph APIGET http://graph.facebook.com/search?q=El+Hierro
  • 30. Facebook: Graph API Anatomía de la respuesta{ "data": [ … ], "paging": { "previous": "http://graph.facebook.com/search?q=El+Hierro&limit=25&since=1321468704", "next": "http://graph.facebook.com/search?q=El+Hierro&limit=25&until=1318323720" }}
  • 31. Facebook: Graph API Anatomía de los contenidos{ "id": "1436858786_250763664960096", "from": { "name": "Maria Danyi", "id": "1436858786" }, "story": "Maria Danyi shared a link.", "story_tags": { "0": [ { "id": 1436858786, "name": "Maria Danyi", "offset": 0, "length": 11 } ] }, "picture": "http://external.ak.fbcdn.net/safe_image.php?d=AQDSegal3g7PeP4k&w=90&h=90&url=httpu00253Au00252Fu00252Fwww.ecplanet.comu00252Fsitesu00252Fecplanet.comu00252Ffilesu00252Fu3u00252F02974_nuova_isola_canarie.jpg", "link": "http://www.ecplanet.com/node/2836", "name": "Emerge unisola delle Canarie vicino a El Hierro | www.ecplanet.com", "caption": "www.ecplanet.com", "description": "Unisola delle Canarie tutta nuova sta emergendo dal mare mentre un vulcanosotomarinpo sta eruttando verso la superficie.", "icon": "http://static.ak.fbcdn.net/rsrc.php/v1/yD/r/aS8ecmYRys0.gif", "type": "link", "application": { "name": "Links", "id": "2309869772"},
  • 32. Facebook: Graph API Parámetros de búsquedaq: Cadena de búsqueda. ?q=El+Hierrotype: Tipo de “objeto”. ?type=postfields: Campos a devolver. ?fields=name https://developers.facebook.com/docs/reference/api/
  • 33. Facebook: Graph API Tipos de objetos Achievement, Album, Application, Checkin, Comment, Domain, Event,FriendList, Group, Insights, Link, Message, Note, Page, Photo, Post, Question, QuestionOption, Review, Status message, Subscription, Thread, User, Video.
  • 34. Facebook: Graph API Python# Cargar libreríasimport urllibimport urllib2import simplejson# Parámetros de la búsquedaparametros = { q : El Hierro, type : posts }# Codificar parámetros para la URLget_params = urllib.urlencode(parametros)# Componer URLurl = http://graph.facebook.com/search?%s %(get_params)# Abrir URLhttp = urllib2.urlopen(url)pagina = http.read()# Convertir datos de JSON a diccionarioresultados = simplejson.loads(pagina)# Mostrar contenidoprint resultados
  • 35. Facebook: Graph API Python# Cargar libreríasimport urllibimport urllib2import simplejson# Parámetros de la búsquedaparametros = { q : El Hierro, type : posts }# Codificar parámetros para la URLget_params = urllib.urlencode(parametros)# Componer URLurl = http://graph.facebook.com/search?%s %(get_params)# Abrir URLhttp = urllib2.urlopen(url)pagina = http.read()# Convertir datos de JSON a diccionarioresultados = simplejson.loads(pagina)# resultados es diccionarioprint len(resultados[data])print resultados[paging][next]
  • 36. Facebook: Graph API Python# Cargar libreríasimport urllibimport urllib2import simplejson# Parámetros de la búsquedaparametros = { q : El Hierro, type : posts }# Codificar parámetros para la URLget_params = urllib.urlencode(parametros)# Componer URLurl = http://graph.facebook.com/search?%s %(get_params)# Abrir URLhttp = urllib2.urlopen(url)pagina = http.read()# Convertir datos de JSON a diccionarioresultados = simplejson.loads(pagina)# Recorrer resultadosfor objeto in resultados[‘data’]: print objeto[‘id’], objeto[‘from’][‘name’]
  • 37. Utilidades Graph API• Explorador de Graph API.• SDKs oficiales: JavaScript, PHP, iOS, Android.• FacePy (Python).
  • 38. Más información• Programming Collective Intelligence, Toby Seagram (O’Reilly).• Mining the Social Web, Matthew A. Russell (O’Reilly).• Data mining, Matthew Hurst.• infosthetics, blog.
  • 39. ¡Gracias por su atención!
  • 40. Cómo obtener informaciónen redes sociales Víctor R. Ruiz <rvr@linotipo.es>Tenerife, 14-18 de noviembre de 2011
  • 41. Contacto Víctor R. Ruiz twitter.com/vrruiz · rvr.linotipo.es> Otras presentaciones disponibles en < http://linotipo.es/

×