Guía para desarrolladores: JavaScript

La API de datos de Blogger permite que las aplicaciones cliente vean y actualicen Blogger contenido en forma de feeds de la API de datos de Google.

Tu aplicación cliente puede usar la API de datos de Blogger para crear un blog nuevo. entradas de blog, editar o borrar entradas de blog, y buscar entradas de blog que coincidan criterios particulares.

Además de proporcionar información sobre las funciones de la API de datos de Blogger, este documento ofrece ejemplos de interacciones básicas con la API de datos mediante la biblioteca cliente de JavaScript. Si te interesa saber más sobre el protocolo subyacente que usa la biblioteca, consulta la sección Protocolo de esta guía para desarrolladores.

Contenido

Público

Este documento está dirigido a los programadores que desean escribir código cliente de JavaScript. que pueden interactuar con Blogger. Proporciona una serie de ejemplos de las interacciones básicas de la API de datos con la biblioteca cliente de JavaScript.

Para obtener información de referencia de la API de datos de Blogger, consulta la guía de referencia del protocolo. Este documento se da por sentado que comprendes las ideas generales detrás de las APIs de Google Data protocolo y el modelo de datos y el flujo de control que usa el cliente de JavaScript biblioteca. También se supone que sabes programar en JavaScript.

Para obtener información de referencia sobre las clases y los métodos proporcionados por la biblioteca cliente, consulta la API de la biblioteca cliente de JavaScript referencia.

Este documento está diseñado para que se pueda leer en orden. cada ejemplo se basa en ejemplos anteriores.

Condiciones de Uso

Cuando uses la biblioteca cliente de JavaScript, aceptas cumplir con las Condiciones de Uso de la Biblioteca Cliente de JavaScript de Google.

Información acerca de los entornos compatibles

Actualmente, solo admitimos aplicaciones cliente de JavaScript que se ejecutan en una en un navegador. Actualmente, los navegadores admitidos son Firefox 1.5 y versiones posteriores, y Internet Explorer 6.0 y versiones posteriores

La biblioteca cliente de JavaScript controla toda la comunicación con la biblioteca servidor. Si eres un desarrollador de JS con experiencia, es posible que te preguntes: "¿Pero qué sucede con la política del mismo origen?". La biblioteca cliente de JavaScript permite que tu cliente envíe solicitudes a la API de Google Data desde cualquier dominio y, al mismo tiempo, cumpla con el modelo de seguridad del navegador.

Cómo comenzar

Antes de poder escribir una aplicación cliente de JavaScript, debes realizar algunas configuraciones para adquirir la biblioteca.

Cómo crear una cuenta de Blogger

Te recomendamos que te registres para obtener una cuenta de Blogger para realizar pruebas. Blogger usa Cuentas de Google, así que si ya tienes una Cuenta de Google, no tienes que hacer nada más.

Adquisición de la biblioteca

Antes de que tu cliente pueda usar la biblioteca cliente, debe solicitar código de la biblioteca cliente desde el servidor.

Comienza por usar una etiqueta <script> en la sección <head> de tu documento HTML para recuperar el cargador de la API de Google AJAX:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

Para adquirir la biblioteca cliente de la API de Google Data después de recuperar el cargador, usa la siguiente línea en tu código de configuración de JavaScript, al que se debe llamar desde la sección <head> de tu documento HTML (o desde un archivo JavaScript que se incluye con una etiqueta <script> en la sección <head> de tu documento HTML):

google.load("gdata", "1.x");

El segundo parámetro de google.load() es la versión solicitada. el número de la biblioteca cliente de JavaScript.Nuestro esquema de numeración de versiones se modela a partir del que usa la API de Google Maps. Estos son los números de versión posibles y su significado:

"1"
La segunda y última revisión de la versión principal 1.
"1.x"
Es la revisión más reciente de la versión principal 1.
"1.s"
La revisión estable más reciente de la versión principal 1. En ocasiones, declararemos que una versión determinada de la biblioteca cliente es "estable" en función de los comentarios que recibimos de los desarrolladores. Sin embargo, es posible que esa versión no tenga las funciones más recientes.
"1.0", "1.1", etc
Es una versión específica de la biblioteca, con un número de revisión mayor y menor especificado.

Después de llamar a google.load(), debes indicarle al cargador que espere hasta que la página termine de cargarse y, luego, llame al código:

google.setOnLoadCallback(getMyBlogFeed);

Donde getMyBlogFeed() es una función que definiremos más adelante de este documento. Usa este enfoque en lugar de tener un controlador onload conectado al elemento <body>.

Cómo autenticar en el servicio de Blogger

Puedes acceder a los feeds públicos y privados con la API de datos de Blogger. Los feeds públicos no requieren ninguna autenticación, pero son de solo lectura. Si quieres modificar blogs, tu cliente debe autenticarse antes de solicitar feeds privados.

La biblioteca cliente de JavaScript utiliza el sistema de autenticación AuthSub. Para para obtener más información sobre la autenticación con las APIs de datos de Google en general, consulta el autenticación documentación.

Autenticación del proxy de AuthSub

Las aplicaciones web que necesitan autenticar a sus usuarios en Cuentas de Google usan la autenticación de proxy de AuthSub. El operador del sitio web y el cliente no tenga acceso al nombre de usuario ni a la contraseña del usuario de Blogger. en su lugar, el cliente obtiene tokens AuthSub especiales que le permiten actuar en nombre de un usuario en particular.

Aquí presentamos una breve descripción general de lo que ocurre durante el proceso de autenticación de un cliente de JavaScript basado en la Web:

  1. La aplicación cliente llama al método google.accounts.user.login() que proporciona la biblioteca cliente y le pasa un valor de "alcance" que indica qué servicio de Google se debe usar. Para Blogger, el permiso es "http://www.blogger.com/feeds/".
  2. La biblioteca cliente envía el navegador a la página "Solicitud de acceso" de Google, en la que el usuario puede ingresar sus credenciales para acceder al servicio.
  3. Si el usuario accede correctamente, el sistema AuthSub envía el navegador de vuelta en la URL del cliente web, pasando la etiqueta de token.
  4. La biblioteca cliente de JavaScript almacena el token en una cookie y devuelve el control a la función de la aplicación cliente que llamó a google.accounts.user.login().
  5. Cuando la aplicación cliente luego llame a los métodos de la biblioteca cliente que interactuar con Blogger, la biblioteca cliente adjunta automáticamente el token a todas las solicitudes.

Nota: Para que la biblioteca cliente de JavaScript cree solicitudes autenticadas de Blogger en un navegador web, tu página debe contener una imagen que está alojada en el mismo dominio que tu página. Puede ser cualquier imagen, incluso una imagen transparente de un solo píxel, pero debe haber una imagen en la página. Si quieres que la imagen no aparezca en tu página, puedes usar la style de la etiqueta <img> para posicionar la imagen fuera de área de renderización. Por ejemplo: style="position:absolute; top: -1000px;".

Este es el código de la aplicación cliente que controla el acceso. Llamaremos a la función setupMyService() desde otro código más adelante.

function logMeIn() {
  scope = "http://www.blogger.com/feeds/";
  var token = google.accounts.user.login(scope);
}

function setupMyService() {
  var myService =
    new google.gdata.blogger.BloggerService('exampleCo-exampleApp-1');
  logMeIn();
  return myService;
}

Sugerencia: Te recomendamos que proporciones botón de acceso u otro mecanismo de entrada del usuario para solicitarle que inicie el acceso procesar manualmente. En cambio, si llamas a google.accounts.user.login() inmediatamente después de la carga, sin esperar la interacción del usuario, lo primero que verá el usuario cuando llegue a tu página será una página de acceso de Google. Si el usuario decide no acceder, Google no lo redirecciona a tu página. Por lo tanto, desde el punto de vista del usuario, intentó visitar tu página, pero se lo reenvió y nunca se lo redireccionó. En esta situación, pueden ser confusas y frustrantes para los usuarios. En el código de ejemplo de este documento, llamemos a google.accounts.user.login() inmediatamente después de la carga para mantener el ejemplo simple, pero no recomendamos este enfoque para aplicaciones cliente del mundo real.

Ten en cuenta que no tienes que hacer nada con la variable llamada token; la biblioteca cliente realiza un seguimiento del token, por lo que no debas hacerlo.

Nota: Cuando creas un nuevo servicio de Blogger la biblioteca cliente llama a un método llamado google.gdata.client.init(), que verifica que el navegador de la instancia en la que se ejecuta el cliente. Si se produce un error, entonces la biblioteca cliente muestra un mensaje de error al usuario. Si quieres manejar este tipo de error tú mismo, puedes llamar explícitamente google.gdata.client.init(handleInitError) antes de crear el servicio, en el que handleInitError() es tu función. Si se produce un error init tu función recibe un objeto Error estándar; puedes hacer lo que quieras que quieres con ese objeto.

El token seguirá siendo válido hasta que lo revoques llamando a google.accounts.user.logout():

function logMeOut() {
  google.accounts.user.logout();
}

Si no llamas a logout(), la cookie que almacena el token dura dos años, a menos que el usuario la borre. Se retiene la cookie. en todas las sesiones del navegador, de modo que el usuario pueda cerrar el navegador y volver a abrirlo y vuelve a la conversación con el cliente, que sigue teniendo acceso.

Sin embargo, existen ciertas circunstancias inusuales en las que un token puede convertirse no válido durante una sesión. Si Blogger rechaza un token, tu cliente debe controlar la condición de error llamando a logout() para quitar la cookie que contiene el token actual y, luego, volver a llamar a login() para adquirir un token nuevo y válido.

Existen otros dos métodos de AuthSub que pueden resultarte útiles en varios con textos:

  • google.accounts.user.checkLogin(scope) te indica si el navegador tiene o no un token de autenticación para el alcance determinado.
  • google.accounts.user.getInfo() proporciona información detallada sobre el token actual para su uso de depuración.

Para obtener detalles sobre el uso de JavaScript para interactuar con AuthSub, incluida información sobre la administración de tokens y sobre checkLogin() y getInfo(), consulta el documento Cómo usar la autenticación "AuthSub" con la biblioteca cliente de JavaScript.

Volver al principio