SlideShare a Scribd company logo
Servicios WEB
Presentación
¿Quién ofrece servicios web?
... y muchos más
Como acceder a servicios web
● REST
● JSON
● SOAP
● TEXTO
● HTML
● ...
Comparación REST/JSON
...
<listado>
<persona>
<nombre>Alberto</nombre>
<apellidos>Garcia</apellidos>
<fecha>21/11/1979</fecha>
</persona>
<persona>
<nombre>David</nombre>
<apellidos>Rodriguez</apellidos>
<fecha>10/01/1983</fecha>
</persona>
</listado>
...
...
var myJSONObject = {"listado": [
{
"nombre": "Alberto",
"apellidos": "Garcia",
"fecha": "21/11/1979"
},
{
"nombre": "David",
"apellidos": "Rodriguez",
"fecha": "10/01/1983"
}
]
};
...
REST JSON
Servicios REST I
● REST (REpresentational State Transfer) es una forma muy sencilla de crear y
usar servicios web.
● Se utiliza la semántica del protocolo HTTP (métodos POST, PUT, GET,
DELETE) para realizar operaciones en el servidor.
● El resultado de cada petición devolverá XML
● Los sistemas que siguen los principios REST se llaman con frecuencia
RESTful
Servicios REST II
REST afirma que la web ha disfrutado de escalabilidad como resultado de una
serie de diseños fundamentales clave:
● Protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda
la información necesaria para comprender la petición. Sin embargo, en la
práctica, muchas aplicaciones basadas en HTTP utilizan cookies y otros
mecanismos para mantener el estado de la sesión.
● Conjunto de operaciones bien definidas : HTTP en sí define un conjunto
pequeño de operaciones, las más importantes son POST, GET, PUT y
DELETE.
● Sintaxis universal para identificar los recursos : cada recurso es
direccionable únicamente a través de su URI (cadena de caracteres corta
que identifica inequívocamente un recurso (servicio, página, documento, ...).
Ej: http:, mailto:, ftp:, ...)
● Uso de hipermedios : la representación de este estado HTML o XML.
Como resultado de esto, es posible navegar de un recurso REST a muchos
otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra
infraestructura adicional.
Servicios JSON I
● Acrónimo de JavaScript Object Notation, es un formato ligero para el
intercambio de datos.
● Es un subconjunto de la notación literal de objetos de JavaScript que no
requiere el uso de XML.
● Su simplicidad ha dado lugar a la generalización de su uso, especialmente
como alternativa a XML en AJAX.
● Una de las supuestas ventajas sobre XML como formato de intercambio de
datos en este contexto es que es mucho más sencillo escribir un analizador
semántico de JSON. En JavaScript, un texto JSON se puede analizar
fácilmente usando el procedimiento eval(), lo cual ha sido fundamental para que
JSON haya sido aceptado por parte de la comunidad de desarrolladores AJAX,
debido a la ubicuidad de JavaScript en casi cualquier navegador web.
Servicios JSON II
● Si bien es frecuente ver JSON posicionado contra XML, también es frecuente
el uso de JSON y XML en la misma aplicación. Por ejemplo, una aplicación de
cliente que integra datos de Google Maps con datos meteorológicos en SOAP
hacen necesario soportar ambos formatos.
● En diciembre de 2005 Yahoo! comenzó a dar soporte opcional de JSON en
algunos de sus servicios web.
REST: Ejemplo
● Ejemplo accediendo a Flickr.
● Solicitar un API Key :
http://www.flickr.com/services/apps/create/apply/
● Vamos a usar el metodo flickr.photos.getRecent
● Con esta URL se puede probar que funciona bien el API_KEY:
http://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key
=<API_KEY>
JSON: Ejemplo
● Ejemplo accediendo a Microsoft API Translator.
● Solicitar un API Key :
http://www.bing.com/developers
● Vamos a usar el método Translate
● Con esta URL se puede probar que funciona bien:
http://api.microsofttranslator.com/V2/Ajax.svc/Translate?text=Hola
%20Mundo&from=es&to=en&appId=<API_KEY>
Google
● Librerías para acceder al API:
http://code.google.com/p/google-api-python-client
http://code.google.com/p/gdata-python-client
● Servicios accesibles:
● Google Custom Search API
● YouTube Data API
● Google Maps Data API
● URL shortener API
● Google Calendar API
● Google Documents List Data API
● Picasa Web Albums Data API
● Blogger Data API
● Google Book Search API
● Google Analytics API
● Google Apps Provisioning API
● Google Base Data API
● Google Code Search Data API
● Google Contacts API
● ...
Google: Consola APIs
● Acceso:
https://code.google.com/apis/console
Google: Instalación gdata-python-client
Descargar de aquí : http://code.google.com/p/gdata-python-
client/downloads/list .
Descomprimir el archivo en algún lugar y por último ejecutar el siguiente
comando:
# sudo ./setup.py install
Google: Instalación google-api-python-client
Descargar de aquí : http://code.google.com/p/google-api-python-
client/downloads/list .
Descomprimir el archivo en algún lugar y por último ejecutar el siguiente
comando:
# sudo ./setup.py install
También es compatible con setuptools y se puede instalar así:
# sudo easy_install google-api-python-client
Google: Búsquedas
● API :
http://code.google.com/intl/es/apis/customsearch/v1/overview.html
● Cuota gratuita limitada a 100 búsquedas por día.
● Si se necesita más se cobrarán $5 por cada 1000 consultas, hasta las
10,000 consultas por día. Si se necesitan más hay que pedir una cuota
adicional.
Google: Youtube
● API:
http://code.google.com/apis/youtube/1.0/developers_guide_python.html
● Buscar, subir, descargar, eliminar videos,...
Google: Maps
● API :
http://code.google.com/apis/maps/documentation/webservices/index.html
● Tiene varios módulos:
● Directions API: Calcula direcciones entre localizaciones
● Distance Matrix API: Calcula tiempo y distancias para una matriz de
origenes y destinos.
● Elevation API : Provee datos de elevación para todas las localizaciones de
la superficie de la tierra. Si es negativa es bajo el mar.
● Geocoding API : Convierte direcciones en coordenadas y viceversa.
● Places API : Devuelve información sobre lugares. Servicios cercanos,
restaurantes, cines, puntos interesantes, ...
Google: URL shortener
● API:
http://code.google.com/apis/urlshortener/v1/reference.html
● Servicio para acortar URL en unos pocos caracteres y que asi sea más fácil
poder usarlas en email, mensajes cortos, sms, ...
● Requiere autentificación Oauth, que sale hecha en el ejemplo. Esto implica
pegar una url en el navegador para darle permiso a la aplicación a acceder a
nuestra cuenta de Google.
Google: Calendar
● API:
http://code.google.com/intl/es/apis/calendar/data/2.0/developers_guide_python.htm
● Permite ver y crear calendarios
● Permite ver y crear eventos, hacer consultas sobre eventos, ....
Google: Docs
● API:
http://code.google.com/apis/documents/docs/3.0/developers_guide_python.html
● Crear documentos, hojas de calculo, ...
● Eliminarlas, subirlas, hacer búsquedas,...
Twitter
● Twitter es una red de información de tiempo real que permite conectarte a lo
que encuentras interesante.
●Simplemente busca cuentas relevantes y sigue las conversaciones.
● La clave de Twitter son pequeños pedazos de información llamados Tweets.
● Cada Tweet tiene 140 caracteres de longitud.
Twitter: Ejemplo
●API :
https://dev.twitter.com/docs/api
● Hay que crear una nueva aplicación:
Se explica después
● Librerías para facilitar el acceso:
http://code.google.com/p/python-twitter
● Instalación librería:
sudo easy_install python-twitter
Twitter: Crear aplicación I
● Para poder usar twitter se debe crear una “aplicación twitter”
● Se accede a esta URL:
https://dev.twitter.com/apps/new
● No hace falta rellenar el Callback URL y hay que darle permisos de “Read and
Write” sino no se pueden hacer posts. Esto nos dará dos datos CONSUMER
KEY y CONSUMER SECRET.
● Lo siguiente es obtener la credenciales Oauth para nuestra aplicación python,
para ello viene un script con python-twitter que habrá que modificar para meter
el COMSUMER KEY y el CONSUMER SECRET:
get_access_token.py
● Nos pedirá que coloquemos una url en el navegador, para darle permiso
con nuestro usuario y después del proceso nos dará un PIN que habrá que
introducir para obtener otros 2 datos “Twitter Access Token Key” y “Access
Token Secret”
● Ahora ves a la aplicación python y haz el login como se explica
Twitter: Crear aplicación II
● Ahora ves a la aplicación python y haz el login como sigue:
api = twitter.Api(CONSUMER_KEY, CONSUMER_SECRET,
TWITTER_ACCESS_TOKEN_KEY,
ACCESS_TOKEN_SECRET)

More Related Content

Viewers also liked

Blisstering drupal module development ppt v1.2
Blisstering drupal module development ppt v1.2Blisstering drupal module development ppt v1.2
Blisstering drupal module development ppt v1.2
Anil Sagar
 
FLTK Summer Course - Part II - Second Impact - Exercises
FLTK Summer Course - Part II - Second Impact - Exercises FLTK Summer Course - Part II - Second Impact - Exercises
FLTK Summer Course - Part II - Second Impact - Exercises
Michel Alves
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
Sergiu-Ioan Ungur
 
FLTK Summer Course - Part VII - Seventh Impact
FLTK Summer Course - Part VII  - Seventh ImpactFLTK Summer Course - Part VII  - Seventh Impact
FLTK Summer Course - Part VII - Seventh Impact
Michel Alves
 
FLTK Summer Course - Part II - Second Impact
FLTK Summer Course - Part II - Second ImpactFLTK Summer Course - Part II - Second Impact
FLTK Summer Course - Part II - Second Impact
Michel Alves
 
Introduction to Git Commands and Concepts
Introduction to Git Commands and ConceptsIntroduction to Git Commands and Concepts
Introduction to Git Commands and Concepts
Carl Brown
 
FLTK Summer Course - Part VI - Sixth Impact - Exercises
FLTK Summer Course - Part VI - Sixth Impact - ExercisesFLTK Summer Course - Part VI - Sixth Impact - Exercises
FLTK Summer Course - Part VI - Sixth Impact - Exercises
Michel Alves
 
Creating Custom Drupal Modules
Creating Custom Drupal ModulesCreating Custom Drupal Modules
Creating Custom Drupal Modules
tanoshimi
 
"Git Hooked!" Using Git hooks to improve your software development process
"Git Hooked!" Using Git hooks to improve your software development process"Git Hooked!" Using Git hooks to improve your software development process
"Git Hooked!" Using Git hooks to improve your software development process
Polished Geek LLC
 
FLTK Summer Course - Part I - First Impact - Exercises
FLTK Summer Course - Part I - First Impact - ExercisesFLTK Summer Course - Part I - First Impact - Exercises
FLTK Summer Course - Part I - First Impact - Exercises
Michel Alves
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
Michel Alves
 
13 Graph Classes
13 Graph Classes13 Graph Classes
13 Graph Classes
poffdeluxe
 
Internal Anatomy of an Update
Internal Anatomy of an UpdateInternal Anatomy of an Update
Internal Anatomy of an Update
MongoDB
 
Linux GIT commands
Linux GIT commandsLinux GIT commands
Linux GIT commands
RajKumar Rampelli
 
Minimal standard c program
Minimal standard c programMinimal standard c program
Minimal standard c program
Swain Loda
 
Python Fuse
Python FusePython Fuse
Python Fuse
Matteo Bertozzi
 
Code of Conduct_formatted
Code of Conduct_formattedCode of Conduct_formatted
Code of Conduct_formatted
Ms. Milanie Candido-Noriega
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
manugoel2003
 
Tech talks#6: Code Refactoring
Tech talks#6: Code RefactoringTech talks#6: Code Refactoring
Tech talks#6: Code Refactoring
Nguyễn Việt Khoa
 
Logging in Python for large applications
Logging in Python for large applicationsLogging in Python for large applications
Logging in Python for large applications
Fayaz Yusuf Khan
 

Viewers also liked (20)

Blisstering drupal module development ppt v1.2
Blisstering drupal module development ppt v1.2Blisstering drupal module development ppt v1.2
Blisstering drupal module development ppt v1.2
 
FLTK Summer Course - Part II - Second Impact - Exercises
FLTK Summer Course - Part II - Second Impact - Exercises FLTK Summer Course - Part II - Second Impact - Exercises
FLTK Summer Course - Part II - Second Impact - Exercises
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
 
FLTK Summer Course - Part VII - Seventh Impact
FLTK Summer Course - Part VII  - Seventh ImpactFLTK Summer Course - Part VII  - Seventh Impact
FLTK Summer Course - Part VII - Seventh Impact
 
FLTK Summer Course - Part II - Second Impact
FLTK Summer Course - Part II - Second ImpactFLTK Summer Course - Part II - Second Impact
FLTK Summer Course - Part II - Second Impact
 
Introduction to Git Commands and Concepts
Introduction to Git Commands and ConceptsIntroduction to Git Commands and Concepts
Introduction to Git Commands and Concepts
 
FLTK Summer Course - Part VI - Sixth Impact - Exercises
FLTK Summer Course - Part VI - Sixth Impact - ExercisesFLTK Summer Course - Part VI - Sixth Impact - Exercises
FLTK Summer Course - Part VI - Sixth Impact - Exercises
 
Creating Custom Drupal Modules
Creating Custom Drupal ModulesCreating Custom Drupal Modules
Creating Custom Drupal Modules
 
"Git Hooked!" Using Git hooks to improve your software development process
"Git Hooked!" Using Git hooks to improve your software development process"Git Hooked!" Using Git hooks to improve your software development process
"Git Hooked!" Using Git hooks to improve your software development process
 
FLTK Summer Course - Part I - First Impact - Exercises
FLTK Summer Course - Part I - First Impact - ExercisesFLTK Summer Course - Part I - First Impact - Exercises
FLTK Summer Course - Part I - First Impact - Exercises
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
13 Graph Classes
13 Graph Classes13 Graph Classes
13 Graph Classes
 
Internal Anatomy of an Update
Internal Anatomy of an UpdateInternal Anatomy of an Update
Internal Anatomy of an Update
 
Linux GIT commands
Linux GIT commandsLinux GIT commands
Linux GIT commands
 
Minimal standard c program
Minimal standard c programMinimal standard c program
Minimal standard c program
 
Python Fuse
Python FusePython Fuse
Python Fuse
 
Code of Conduct_formatted
Code of Conduct_formattedCode of Conduct_formatted
Code of Conduct_formatted
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
 
Tech talks#6: Code Refactoring
Tech talks#6: Code RefactoringTech talks#6: Code Refactoring
Tech talks#6: Code Refactoring
 
Logging in Python for large applications
Logging in Python for large applicationsLogging in Python for large applications
Logging in Python for large applications
 

Similar to Servicios web con Python

Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en Android
Alberto Ruibal
 
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasDesarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Guillermo Álvaro Rey
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y Go
JM Robles
 
RAML
RAMLRAML
RAML
CloudAppi
 
Servicios web
Servicios webServicios web
Servicios web
Cheli Hedz
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Iniciativa Barcelona Open Data
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
Carlos Toxtli
 
La biblia del foot printing
La biblia del foot printingLa biblia del foot printing
La biblia del foot printing
Germán López Tilmans
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
CloudAppi
 
Todas las APIs de Google
Todas las APIs de GoogleTodas las APIs de Google
Todas las APIs de Google
Carlos Toxtli
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
Alejandro Esquiva Rodriguez
 
Curso Cloud Computing, Parte 2: Google App Engine
Curso Cloud Computing, Parte 2: Google App EngineCurso Cloud Computing, Parte 2: Google App Engine
Curso Cloud Computing, Parte 2: Google App Engine
Diego López-de-Ipiña González-de-Artaza
 
Atix30
Atix30Atix30
Diseño web
Diseño webDiseño web
Diseño web
valenciaredsocial
 
Wilver mongo db
Wilver mongo dbWilver mongo db
Wilver mongo db
Wituam Wituam
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDB
Emilio Torrens
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apis
CloudAppi
 
WEB SCRAPING & API REST
 WEB SCRAPING & API REST WEB SCRAPING & API REST
WEB SCRAPING & API REST
Charly Graf Q
 
Diseño web
Diseño webDiseño web
Diseño web
valenciaredsocial
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
CloudAppi
 

Similar to Servicios web con Python (20)

Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en Android
 
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasDesarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y Go
 
RAML
RAMLRAML
RAML
 
Servicios web
Servicios webServicios web
Servicios web
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
 
La biblia del foot printing
La biblia del foot printingLa biblia del foot printing
La biblia del foot printing
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
 
Todas las APIs de Google
Todas las APIs de GoogleTodas las APIs de Google
Todas las APIs de Google
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
 
Curso Cloud Computing, Parte 2: Google App Engine
Curso Cloud Computing, Parte 2: Google App EngineCurso Cloud Computing, Parte 2: Google App Engine
Curso Cloud Computing, Parte 2: Google App Engine
 
Atix30
Atix30Atix30
Atix30
 
Diseño web
Diseño webDiseño web
Diseño web
 
Wilver mongo db
Wilver mongo dbWilver mongo db
Wilver mongo db
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDB
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apis
 
WEB SCRAPING & API REST
 WEB SCRAPING & API REST WEB SCRAPING & API REST
WEB SCRAPING & API REST
 
Diseño web
Diseño webDiseño web
Diseño web
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
 

Servicios web con Python

  • 2. ¿Quién ofrece servicios web? ... y muchos más
  • 3. Como acceder a servicios web ● REST ● JSON ● SOAP ● TEXTO ● HTML ● ...
  • 5. Servicios REST I ● REST (REpresentational State Transfer) es una forma muy sencilla de crear y usar servicios web. ● Se utiliza la semántica del protocolo HTTP (métodos POST, PUT, GET, DELETE) para realizar operaciones en el servidor. ● El resultado de cada petición devolverá XML ● Los sistemas que siguen los principios REST se llaman con frecuencia RESTful
  • 6. Servicios REST II REST afirma que la web ha disfrutado de escalabilidad como resultado de una serie de diseños fundamentales clave: ● Protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la información necesaria para comprender la petición. Sin embargo, en la práctica, muchas aplicaciones basadas en HTTP utilizan cookies y otros mecanismos para mantener el estado de la sesión. ● Conjunto de operaciones bien definidas : HTTP en sí define un conjunto pequeño de operaciones, las más importantes son POST, GET, PUT y DELETE. ● Sintaxis universal para identificar los recursos : cada recurso es direccionable únicamente a través de su URI (cadena de caracteres corta que identifica inequívocamente un recurso (servicio, página, documento, ...). Ej: http:, mailto:, ftp:, ...) ● Uso de hipermedios : la representación de este estado HTML o XML. Como resultado de esto, es posible navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra infraestructura adicional.
  • 7. Servicios JSON I ● Acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. ● Es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML. ● Su simplicidad ha dado lugar a la generalización de su uso, especialmente como alternativa a XML en AJAX. ● Una de las supuestas ventajas sobre XML como formato de intercambio de datos en este contexto es que es mucho más sencillo escribir un analizador semántico de JSON. En JavaScript, un texto JSON se puede analizar fácilmente usando el procedimiento eval(), lo cual ha sido fundamental para que JSON haya sido aceptado por parte de la comunidad de desarrolladores AJAX, debido a la ubicuidad de JavaScript en casi cualquier navegador web.
  • 8. Servicios JSON II ● Si bien es frecuente ver JSON posicionado contra XML, también es frecuente el uso de JSON y XML en la misma aplicación. Por ejemplo, una aplicación de cliente que integra datos de Google Maps con datos meteorológicos en SOAP hacen necesario soportar ambos formatos. ● En diciembre de 2005 Yahoo! comenzó a dar soporte opcional de JSON en algunos de sus servicios web.
  • 9. REST: Ejemplo ● Ejemplo accediendo a Flickr. ● Solicitar un API Key : http://www.flickr.com/services/apps/create/apply/ ● Vamos a usar el metodo flickr.photos.getRecent ● Con esta URL se puede probar que funciona bien el API_KEY: http://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key =<API_KEY>
  • 10. JSON: Ejemplo ● Ejemplo accediendo a Microsoft API Translator. ● Solicitar un API Key : http://www.bing.com/developers ● Vamos a usar el método Translate ● Con esta URL se puede probar que funciona bien: http://api.microsofttranslator.com/V2/Ajax.svc/Translate?text=Hola %20Mundo&from=es&to=en&appId=<API_KEY>
  • 11. Google ● Librerías para acceder al API: http://code.google.com/p/google-api-python-client http://code.google.com/p/gdata-python-client ● Servicios accesibles: ● Google Custom Search API ● YouTube Data API ● Google Maps Data API ● URL shortener API ● Google Calendar API ● Google Documents List Data API ● Picasa Web Albums Data API ● Blogger Data API ● Google Book Search API ● Google Analytics API ● Google Apps Provisioning API ● Google Base Data API ● Google Code Search Data API ● Google Contacts API ● ...
  • 12. Google: Consola APIs ● Acceso: https://code.google.com/apis/console
  • 13. Google: Instalación gdata-python-client Descargar de aquí : http://code.google.com/p/gdata-python- client/downloads/list . Descomprimir el archivo en algún lugar y por último ejecutar el siguiente comando: # sudo ./setup.py install
  • 14. Google: Instalación google-api-python-client Descargar de aquí : http://code.google.com/p/google-api-python- client/downloads/list . Descomprimir el archivo en algún lugar y por último ejecutar el siguiente comando: # sudo ./setup.py install También es compatible con setuptools y se puede instalar así: # sudo easy_install google-api-python-client
  • 15. Google: Búsquedas ● API : http://code.google.com/intl/es/apis/customsearch/v1/overview.html ● Cuota gratuita limitada a 100 búsquedas por día. ● Si se necesita más se cobrarán $5 por cada 1000 consultas, hasta las 10,000 consultas por día. Si se necesitan más hay que pedir una cuota adicional.
  • 17. Google: Maps ● API : http://code.google.com/apis/maps/documentation/webservices/index.html ● Tiene varios módulos: ● Directions API: Calcula direcciones entre localizaciones ● Distance Matrix API: Calcula tiempo y distancias para una matriz de origenes y destinos. ● Elevation API : Provee datos de elevación para todas las localizaciones de la superficie de la tierra. Si es negativa es bajo el mar. ● Geocoding API : Convierte direcciones en coordenadas y viceversa. ● Places API : Devuelve información sobre lugares. Servicios cercanos, restaurantes, cines, puntos interesantes, ...
  • 18. Google: URL shortener ● API: http://code.google.com/apis/urlshortener/v1/reference.html ● Servicio para acortar URL en unos pocos caracteres y que asi sea más fácil poder usarlas en email, mensajes cortos, sms, ... ● Requiere autentificación Oauth, que sale hecha en el ejemplo. Esto implica pegar una url en el navegador para darle permiso a la aplicación a acceder a nuestra cuenta de Google.
  • 19. Google: Calendar ● API: http://code.google.com/intl/es/apis/calendar/data/2.0/developers_guide_python.htm ● Permite ver y crear calendarios ● Permite ver y crear eventos, hacer consultas sobre eventos, ....
  • 20. Google: Docs ● API: http://code.google.com/apis/documents/docs/3.0/developers_guide_python.html ● Crear documentos, hojas de calculo, ... ● Eliminarlas, subirlas, hacer búsquedas,...
  • 21. Twitter ● Twitter es una red de información de tiempo real que permite conectarte a lo que encuentras interesante. ●Simplemente busca cuentas relevantes y sigue las conversaciones. ● La clave de Twitter son pequeños pedazos de información llamados Tweets. ● Cada Tweet tiene 140 caracteres de longitud.
  • 22. Twitter: Ejemplo ●API : https://dev.twitter.com/docs/api ● Hay que crear una nueva aplicación: Se explica después ● Librerías para facilitar el acceso: http://code.google.com/p/python-twitter ● Instalación librería: sudo easy_install python-twitter
  • 23. Twitter: Crear aplicación I ● Para poder usar twitter se debe crear una “aplicación twitter” ● Se accede a esta URL: https://dev.twitter.com/apps/new ● No hace falta rellenar el Callback URL y hay que darle permisos de “Read and Write” sino no se pueden hacer posts. Esto nos dará dos datos CONSUMER KEY y CONSUMER SECRET. ● Lo siguiente es obtener la credenciales Oauth para nuestra aplicación python, para ello viene un script con python-twitter que habrá que modificar para meter el COMSUMER KEY y el CONSUMER SECRET: get_access_token.py ● Nos pedirá que coloquemos una url en el navegador, para darle permiso con nuestro usuario y después del proceso nos dará un PIN que habrá que introducir para obtener otros 2 datos “Twitter Access Token Key” y “Access Token Secret” ● Ahora ves a la aplicación python y haz el login como se explica
  • 24. Twitter: Crear aplicación II ● Ahora ves a la aplicación python y haz el login como sigue: api = twitter.Api(CONSUMER_KEY, CONSUMER_SECRET, TWITTER_ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)