Preguntas frecuentes

    Descripción general

  1. ¿Qué es una API de datos de Google?
  2. Tengo una solicitud de función o un informe de errores. ¿Dónde debo publicar?
  3. ¿Dónde debo hacer una pregunta sobre una API en particular?
  4. ¿Qué es JSON?
  5. ¿Tengo que usar XML? ¿Hay otros formatos de datos disponibles?
  6. ¿Por qué usan REST?
  7. ¿Tiene alguna sugerencia o código corto de muestra para los problemas comunes?
  8. ¿Gmail tiene una API de datos?
  9. Autenticación

  10. ¿Cuál es el nombre del servicio en ClientLogin para cada API de datos?
  11. Cuando un usuario sale de una aplicación, ¿es necesario informar a los servidores de la API?
  12. ¿Un token de autenticación de ClientLogin tiene una fecha de vencimiento?
  13. Tengo una pregunta general sobre las Cuentas de Google. ¿Adónde puedo ir?
  14. ¿Cómo puedo autenticar con una API?
  15. ¿Qué valor debo usar para el parámetro de permiso de AuthSub/OAuth 1?
  16. ¿Existen diferentes tipos de tokens de AuthSub? ¿Los tokens vencen?
  17. ¿Cuál es la principal diferencia entre ClientLogin y AuthSub/OAuth 1?
  18. ¿Puedo usar la autenticación ClientLogin en aplicaciones web de terceros?
  19. ¿Qué es un CAPTCHA?
  20. ¿Cómo puedo generar un desafío de CAPTCHA?
  21. ¿Debo usar ClientLogin en mi aplicación web?
  22. ¿Cómo puedo averiguar el nombre de usuario del usuario cuando se usa AuthSub/OAuth 1?
  23. ¿Cómo uso OAuth 1 con las bibliotecas cliente de la API de datos de Google?
  24. ¿Cómo uso AuthSub con las bibliotecas cliente de la API de datos de Google?
  25. ¿Cómo uso ClientLogin con las bibliotecas cliente de la API de datos de Google?
  26. Bibliotecas cliente

  27. ¿Qué lenguajes de programación tienen bibliotecas cliente compatibles con Google?
  28. ¿Cómo informo un error o una solicitud de función en una de las bibliotecas cliente de datos de Google?
  29. ¿Cómo habilito las opciones de depuración en las bibliotecas cliente?
  30. ¿Dónde puedo encontrar documentos de referencia para las clases de biblioteca cliente?
  31. Solución de problemas

  32. ¿Cuáles son algunas herramientas útiles para depurar HTTP?
  33. ¿Cómo obtengo información de registro HTTP en la biblioteca cliente de Java?
  34. ¿Cómo obtengo información de registro HTTP en la biblioteca cliente de .NET?
  35. ¿Cómo puedo habilitar la codificación gzip desde los feeds de datos de Google?
  36. ¿Por qué veo el error “No se puede conectar a sslv2” cuando uso el cliente PHP?
  37. ¿Cómo obtengo el documento de servicio de Atom que describe un feed?

Descripción general

¿Qué es una API de datos de Google?

Una API de datos de Google es una API basada en el protocolo de datos de Google. El protocolo de datos de Google se basa en los formatos de distribución Atom 1.0 y RSS 2.0, además del protocolo de publicación Atom (APP).

El protocolo de datos de Google extiende esos estándares de varias maneras, con los mecanismos de extensión incorporados en ellos. Los feeds cumplen con los formatos de distribución Atom o RSS. El modelo de publicación cumple con el protocolo de publicación de Atom.

El protocolo también proporciona un modelo general para feeds, consultas y resultados. Puedes usarlo para enviar consultas y actualizaciones a cualquier API de datos.

Tengo una solicitud de función o un informe de errores. ¿Dónde debo publicar?
Consulta nuestra Herramienta de seguimiento de errores. Busca tu solicitud de función y destácala con el fin de agregar tu asistencia y recibir actualizaciones sobre su estado.
¿Dónde debo hacer una pregunta sobre una API en particular?
Si tu problema no aparece en esta lista o si necesitas más detalles, hay grupos de discusión específicos para cada API de datos de Google:
¿Qué es JSON?

JSON hace referencia a la notación de objetos de JavaScript.

JSON es un formato de intercambio de datos ligero que simplifica el uso generalizado entre los desarrolladores web. Es fácil de leer y escribir; puedes analizarlo con cualquier lenguaje de programación, y sus estructuras se asignan directamente a las estructuras de datos que se usan en la mayoría de los lenguajes de programación.

Obtén más información sobre cómo usar JSON con las API de datos de Google.

¿Tengo que usar XML? ¿Hay otros formatos de datos disponibles?
El formato de datos predeterminado para las API de datos de Google es XML, en forma de feed de Atom. Sin embargo, cuando solicitas un feed, puedes especificar un formato alternativo mediante el parámetro de búsqueda alt.
  • alt=rss
    Los datos de respuesta tienen el formato de un feed RSS.
  • alt=json o alt=json-in-script
    Muestra una representación JSON de la estructura XML del feed de Atom. El beneficio adicional de JSON es que es más fácil "analizar" en el código del cliente de JavaScript. En este momento, el uso de JSON solo está disponible como opción de solo lectura. Sin embargo, el uso de la biblioteca cliente de JavaScript con los servicios de Blogger, Contactos o Calendario permite leer y escribir datos.

    Obtenga más información sobre cómo solicitar y usar feeds JSON.

  • alt=atom-in-script
    Similar a alt=json-in-script, pero los resultados se muestran como una string XML de Atom en lugar de JSON.
  • alt=rss-in-script
    Similar a alt=atom-in-script, pero los resultados se muestran como una string XML RSS en lugar de Atom.

Obtén más información sobre los formatos alternativos en la Guía de referencia de datos de Google.

¿Por qué usas REST?
REST es simple, liviano, escalable y se mapea muy bien para representar y exponer los datos.
¿Tiene alguna sugerencia o código corto de muestra para los problemas comunes?
Puedes explorar el Blog de sugerencias de la API de datos de Google para obtener ayuda con nuestras bibliotecas cliente y con la realización de solicitudes sin procesar.
¿Gmail tiene una API de datos?

No, pero puedes usar el feed Atom de Gmail con AuthSub o OAuth 1 para solicitar acceso de solo lectura a los mensajes no leídos de un usuario. El permiso debe establecerse en https://mail.google.com/mail/feed/atom/. Una consulta de ejemplo sería la siguiente:

GET https://mail.google.com/mail/feed/atom/

Si deseas administrar tu correo electrónico, Gmail también cuenta con asistencia de IMAP/POP.


Autenticación

En la documentación de las API de datos de Google, “OAuth” se refiere a OAuth 1. Para obtener detalles de OAuth 2.0, consulta la documentación de tu API individual.

¿Cuál es el nombre del servicio en ClientLogin para cada API de datos?
Un “nombre de servicio” es una string breve que usa el sistema de autenticación de ClientLogin para identificar un servicio de Google.
API de Google Nombre del servicio
API de datos de Google Analytics analytics
G Suite APIs
(Información y administración de dominios)
apps
API de datos de sitios de Google jotspot
API de datos de Blogger blogger
API de Book Search Data print
API de datos de calendario cl
API de Google Code Search Data codesearch
API de datos de contactos cp
Content API for Shopping structuredcontent
API de Documents List Data writely
API de Finance Data finance
Feed Atom de Gmail mail
API de Health Data health
weaver (zona de pruebas H9)
API de Maps Data local
API de datos de Álbumes web de Picasa lh2
API de datos de Sidewiki annotateweb
API de datos de hojas de cálculo wise
API de las Herramientas para webmasters de Google sitemaps
API de YouTube Data youtube

Para obtener más información sobre los otros parámetros utilizados en una solicitud de ClientLogin, consulta la documentación de ClientLogin.

Cuando un usuario sale de una aplicación, ¿es necesario informar a los servidores de la API?
No, no es necesario informar a la API de datos de Google cuando un usuario sale de una aplicación. Sin embargo, si tu aplicación ya no necesita usar un token de AuthSub, debe revocarlo.
¿Un token de autenticación de ClientLogin tiene una fecha de vencimiento?
Un token ClientLogin puede durar 2 semanas a partir de la fecha de emisión, pero este límite es específico del servicio y puede ser más corto.
Tengo una pregunta general acerca de las cuentas de Google. ¿Adónde puedo ir?
Visita el Centro de ayuda de Cuentas de Google.
¿Cómo puedo autenticar con una API?
Tu solicitud HTTP debe incluir un encabezado de autorización que contenga un token obtenido mediante ClientLogin, AuthSub o OAuth 1.
¿Qué valor debo usar para el parámetro de alcance de AuthSub/Oauth 1?
Se requiere un parámetro scope para que AuthSub y OAuth 1 identifiquen a qué servicios de Google tendrá acceso tu aplicación. Para obtener detalles de OAuth 2.0, consulta la documentación de tu API específica.

API de Google Nombre del servicio ClientLogin
API de Google Analytics Data https://www.google.com/analytics/feeds/
API de datos de sitios de Google http(s)://sites.google.com/feeds/
API de datos de Blogger http://www.blogger.com/feeds/
API de Book Search Data http://www.google.com/books/feeds/
API de datos de calendario http(s)://www.google.com/calendar/feeds/
API de datos de contactos http(s)://www.google.com/m8/feeds/
Content API for Shopping https://www.googleapis.com/auth/structuredcontent
API de Documents List Data http(s)://docs.google.com/feeds/
API de Finance Data http://finance.google.com/finance/feeds/
Feed Atom de Gmail https://mail.google.com/mail/feed/atom/
API de Health Data https://www.google.com/health/feeds/
https://www.google.com/h9/feeds/ (zona de pruebas H9)
API de Maps Data http://maps.google.com/maps/feeds/
API de datos de Álbumes web de Picasa http://picasaweb.google.com/data/
API de Portable Contacts http://www-opensocial.googleusercontent.com/api/people
API de datos de Sidewiki http://www.google.com/sidewiki/feeds/
API de datos de hojas de cálculo http(s)://spreadsheets.google.com/feeds/
API de las Herramientas para webmasters de Google http://www.google.com/webmasters/tools/feeds/
API de YouTube Data http://gdata.youtube.com
¿Existen diferentes tipos de tokens de AuthSub? ¿Los tokens vencen?
Existen dos tipos de tokens de AuthSub. El primero es un token de un solo uso que se presenta a tu aplicación web a través del parámetro de consulta “token”. Este token vence la primera vez que se usa con el servicio para el que se emitió o cuando se intercambia por un token de sesión.

Los tokens de sesión no vencen, a menos que el token se revoque de forma explícita por el usuario o la llamada a la API de AuthSubRevokeToken. Un token de uso único solo se puede intercambiar por un token de sesión si la URL AuthSubRequest original especificó session=1 como un parámetro de consulta.
¿Cuál es la principal diferencia entre ClientLogin y AuthSub/OAuth 1?

AuthSub está diseñado para aplicaciones web. Garantiza que las credenciales de usuario se envíen de forma segura directamente desde el navegador web de un usuario a los servidores de Google, en lugar de hacerlo a través de un sitio web de terceros.

ClientLogin es para aplicaciones de escritorio instaladas. Requiere que la aplicación que realiza la solicitud transmita las credenciales del usuario a Google en nombre del usuario.

Consulta la documentación sobre la API de autenticación de cuentas de Google.

¿Puedo usar la autenticación de ClientLogin en aplicaciones web de terceros?
Se admite el uso de ClientLogin en aplicaciones web de terceros, pero no se recomienda. Como práctica recomendada, la aplicación web nunca debe solicitarle a un usuario sus credenciales de acceso (esto puede ser susceptible de intrusión). En su lugar, una aplicación debe almacenar credenciales de usuario en el servidor y tener una única "cuenta de servicio" que siempre se usa para la autenticación con Google.
¿Qué es un CAPTCHA?
Un CAPTCHA (prueba de Turing pública completamente automatizada para indicarles a las computadoras y a las personas que sí lo son) es un tipo de prueba de desafío-respuesta que se usa para determinar si el usuario es humano o no. El término es una marca comercial de la Universidad Carnegie Mellon. Obtén más información en Wikipedia. Implementamos un CAPTCHA en ClientLogin.
¿Cómo puedo generar un desafío de CAPTCHA?
Se usa un algoritmo de propiedad para determinar cuándo se requiere un desafío de CAPTCHA durante la autenticación. Los intentos de autenticación reiterados con credenciales incorrectas suelen generar un desafío CAPTCHA.
¿Debo usar ClientLogin en mi aplicación web?
No, las aplicaciones instaladas deben utilizar ClientLogin en el hardware de los usuarios. El uso de la API ClientLogin en aplicaciones web es poco seguro y altamente recomendable.
¿Cómo puedo averiguar el nombre de usuario del usuario cuando uso AuthSub/OAuth 1?
Como solo se te proporciona un token de Google que otorga acceso a los feeds del usuario, es posible que no sepas cuál es su nombre de usuario. Esto puede suponer un problema si la URL del feed que deseas usar contiene el nombre de usuario como parte de él. En este caso, puedes usar el nombre de usuario especial default para indicar "el usuario cuyo token de autenticación estoy usando".
¿Cómo uso OAuth 1 con las bibliotecas cliente de la API de datos de Google?
Consulta el artículo Cómo usar OAuth 1 con las bibliotecas cliente de la API de datos de Google.
¿Cómo uso AuthSub con las bibliotecas cliente de la API de datos de Google?
Consulta el artículo Cómo usar AuthSub con las bibliotecas cliente de la API de datos de Google.
¿Cómo uso ClientLogin con las bibliotecas cliente de la API de datos de Google?
Consulta el artículo Cómo usar ClientLogin con las bibliotecas cliente de la API de datos de Google.

Bibliotecas cliente

¿Qué lenguajes de programación tienen bibliotecas cliente compatibles con Google?

Las bibliotecas cliente de Java, .NET, Python y Objective-C son compatibles oficialmente con Google. Además, nuestro socio, Zend, escribió una biblioteca cliente PHP. Con estas bibliotecas, puedes crear solicitudes del protocolo de datos de Google, enviarlas a un servicio y procesar las respuestas del servidor. También existe una biblioteca cliente de JavaScript que actualmente solo es compatible con Blogger, Calendario y Contactos de Google.

Si escribes una biblioteca cliente en un lenguaje que no sea Java, .NET, Python o Objective-C y deseas compartirla con la comunidad de desarrolladores de la API de datos, publícala en el grupo de discusión de las API de datos de Google. Nos encantaría conocer tu opinión.

¿Cómo informo un error o una solicitud de función en una de las bibliotecas cliente?

Los errores o las solicitudes de funciones para las bibliotecas cliente se pueden informar en las siguientes ubicaciones:

Después de publicar el error, crea una conversación en el foro de desarrolladores para la API adecuada.

¿Cómo habilito las opciones de depuración en las bibliotecas cliente de la API de datos de Google?
Consulta el siguiente artículo para obtener información sobre cómo habilitar la depuración con algunas de las bibliotecas cliente: Cómo depurar clientes de la API de datos de Google: explora el tráfico desde el programa
¿Dónde puedo encontrar documentos de referencia para las clases de biblioteca cliente?
Biblioteca cliente Guía de referencia
Java Javadoc
JavaScript JSDoc
.NET NDoc
PHP phpDoc
Python PyDoc;

Solución de problemas

¿Cuáles son algunas herramientas útiles para depurar HTTP?

A continuación, se describen algunas herramientas, pero también te recomendamos leer el artículo On the Wire: Network Capture Tools for API Developers, en el que se describen ejemplos detallados de WireShark y Fiddler.

Wireshark;
Wireshark es un "analizador de protocolos de red". Permite capturar el tráfico de red y analizar el contenido. Es muy útil para depurar el tráfico que se produce en las bibliotecas en las que no tienes acceso directo a los flujos de solicitudes y respuestas HTTP. El tráfico entre la aplicación y los servicios de autenticación no se puede analizar con Wireshark, ya que la comunicación se encripta mediante SSL. Wireshark también se puede usar para analizar el tráfico capturado con herramientas como tcpdump. Los desarrolladores pueden acceder a Wireshark como código fuente y como instalador de Windows. Los paquetes de terceros están disponibles para muchas plataformas.
Fiddler
Fiddler es un “proxy de depuración HTTP”. Si puedes configurar tu código o tu entorno de ejecución a fin de usar un servidor proxy para el tráfico HTTP, Fiddler se ubicará entre tu aplicación y los servicios de datos de Google en los que te permitirá inspeccionar el tráfico. Fiddler 2 es compatible con SSL. Por el momento, Fiddler solo está disponible para Windows.
cURL
cURL es una herramienta de línea de comandos que puede realizar solicitudes HTTP/HTTPS. Es muy útil para probar rápidamente las interacciones con un servicio sin tener que compilar primero la compatibilidad con HTTP en el cliente.
¿Cómo obtengo información de registro HTTP en la biblioteca cliente de Java?

Las bibliotecas cliente de Java usan el paquete java.util.logging para habilitar el registro de solicitudes HTTP. Esto te permitirá habilitar el registro de encabezados para solicitudes y respuestas, así como los códigos de estado y las URL de solicitud. Por el momento, no registra los flujos de solicitud y respuesta completos. El nombre del registrador que se usa para estos registros es com.google.gdata.client.http.HttpGDataRequest.

Si se muestra un código de error de los servidores, se genera una excepción. Las clases de excepciones se heredan de com.google.gdata.util.ServiceException y, además, incluyen un método público llamado getResponseBody(). Para obtener más información, consulta Javadoc.

¿Cómo obtengo información de registro HTTP en la biblioteca cliente de .NET?
La biblioteca .NET usa los métodos de seguimiento System.Diagnostics para registrar la ruta de ejecución si el seguimiento está habilitado. Además, en caso de error, se genera una GDataRequestException. La excepción contiene un ResponseString que te permite acceder al cuerpo de la respuesta HTTP.
¿Cómo puedo habilitar la codificación gzip desde los feeds de datos de Google?

Si quieres recibir una respuesta codificada en gzip de una de las API de datos de Google, debes hacer dos cosas: configurar un encabezado "Accept-Encoding" y modificar tu usuario-agente para que contenga la string "gzip". Un ejemplo de encabezados bien formados:

User-Agent: my program (gzip)
Accept-Encoding: gzip
¿Por qué veo el error “No se puede conectar a sslv2” cuando uso el cliente PHP?

A partir de julio de 2009, comenzamos a inhabilitar SSLv2 en nuestros servidores como medida de precaución para mejorar la seguridad. Por desgracia, hay un error en las primeras versiones de la biblioteca cliente de PHP lanzada antes de julio de 2007 (versión 1.0.0 y anteriores) que fuerza las conexiones a usar SSLv2. Cuando te conectas a un servidor que tiene SSLv2 inhabilitado, se produce el siguiente error:

PHP Fatal error:  Uncaught exception 'Zend_Http_Client_Adapter_Exception' with message 'Unable to Connect to sslv2://www.google.com:443.'

Para corregir este error, actualiza a una versión más reciente de la biblioteca cliente de PHP, que está disponible en http://framework.zend.com/download.

Si no puedes actualizar a una versión más reciente, puedes agregar el siguiente código a tu aplicación para solucionar el problema: $gdata es tu instancia existente de Zend_Gdata (o la subclase adecuada):

$gdata->getHttpClient()->setConfig(array('ssltransport' => 'ssl'));
¿Cómo obtengo el documento de servicio de Atom que describe un feed?

Para obtener el documento del servicio Atom, pasa el parámetro alt=atom-service en la solicitud. Nota: Solo la versión 2 de las API de datos de Google mostrará un documento de servicio que cumpla con la sintaxis del documento de servicio de AtomPub. La versión 1 de las API de datos de Google seguirá mostrando un documento de servicio, pero se basa en una especificación de borrador de AtomPub anterior (hay cambios de sintaxis y de espacio de nombres entre las dos versiones).