Dynamic Links

La función Dynamic Links de Google Libros te permite crear vínculos más personalizables y confiables desde tu sitio. Por ejemplo, esta herramienta te permite generar vínculos "inteligentes" que aparecen solo cuando un libro está en nuestro índice o vínculos a sitios que indican a tus usuarios si se puede obtener una vista previa de un libro en Google Libros. La función Dynamic Links también te permite incluir una imagen en miniatura en el vínculo a Google Libros. Este documento tiene como objetivo permitirle agregar rápidamente esta funcionalidad a su sitio.

Nota: Esta función antes se conocía como la API de visibilidad de libros.

El asistente de vista previa es una herramienta diseñada para generar Dynamic Links en la parte superior, que facilita aún más la vinculación a las vistas previas de libros desde el sitio con solo copiar algunas líneas de código. Este documento está dirigido a desarrolladores más avanzados que deseen personalizar la forma en que se vinculan a la Búsqueda de libros.

Contenido

  1. Público
  2. Terminología de la Búsqueda de libros
  3. Introducción
  4. Lineamientos de desarrollo de la marca
  5. La API del cliente
    1. Formato de URL de solicitud
    2. Formato de resultados JSON
  6. Modos síncronos y asíncronos
  7. Preguntas frecuentes
  8. Muestras de código

Público

La documentación sobre vínculos dinámicos está dirigida a programadores que desean crear aplicaciones web con vínculos a libros en Google Libros. En esta documentación, se supone que estás familiarizado con el protocolo HTTP y el JavaScript básico.

Terminología de la Búsqueda de libros

Google Libros respeta las restricciones de derechos de autor locales del usuario y, como resultado, las vistas previas o las vistas completas de algunos libros no están disponibles en todas las ubicaciones. La visibilidad se agrupa en las siguientes clases:

Vista completa
Puedes ver el libro completo. Estos libros pueden ser de dominio público.
Vista previa limitada
Una parte del libro es visible. Este libro está protegido por derechos de autor y Google Libros ha recibido permiso para permitir que los usuarios puedan acceder a estas páginas. Estos libros difieren de los libros con vista de fragmento en que los usuarios pueden ver páginas completas.
Vista de fragmentos y sin vista previa
Los usuarios ven solo una página "Acerca del libro" Como máximo, solo están disponibles extractos breves del libro. Este libro no se escaneó o está protegido por derechos de autor, y Google Libros no recibió el permiso para exponer más de unos & fragmentos relacionados con el término de búsqueda del usuario.

Introducción

La documentación de Vínculos estáticos describe una manera muy simple de generar URL para la página de un libro en particular en Google Libros. Lamentablemente, a veces ocurre que un libro en particular no está en el índice de Google Libros o la vista previa no está disponible para un usuario en una ubicación geográfica específica. Debido a que los vínculos estáticos son "ciegos", a veces no logran tener el efecto deseado.

Dynamic Links proporciona un método alternativo y programático para consultar la visibilidad de un libro con JavaScript. Esto te permite incluir vínculos más confiables y predecibles a la Búsqueda de libros, lo que brinda una experiencia más coherente para tus usuarios. Dado que la visibilidad varía según la ubicación del usuario final, la interfaz del vínculo dinámico no está diseñada para consultas sin conexión o del servidor.

Para tener una idea de lo que pueden hacer los Dynamic Links, ve a las muestras de código que se encuentran al final de este documento.

Lineamientos sobre el desarrollo de la marca

Cuando renderices Dynamic Links, debes respetar los lineamientos de marca que rigen la familia de la API de Google Libros. En particular,

  • Debes mantener la atribución y los vínculos a Google Libros.
  • Al vincular a vistas previas de Google Libros, solo debe usar el botón de vista previa de Google aprobado.
  • Todos los vínculos de texto, botones, documentación o texto descriptivo deben cumplir con las convenciones de nombres aprobadas. Por ejemplo, no debes usar los verbos "descargar" o "leer" cuando vinculas las vistas previas de Google Libros, ya que solo se pueden descargar obras de dominio público en su totalidad.

Ejemplo de desarrollo de la marca

Freakonomics: An Rogue Economist Explora el lado oculto de todo
Por Steven Levitt y Stephen Dubner

La sección de muestras al final de este documento proporciona ejemplos adicionales que cumplen con los lineamientos de desarrollo de la marca actuales.

API del cliente

En el núcleo del vínculo dinámico del cliente, se encuentra un formato de URL que permite a los desarrolladores crear URL que soliciten información sobre uno o más libros, y envíen las solicitudes a Google Libros con la etiqueta <script>.

Ejemplo de sintaxis:
<script src="https://books.google.com/books?bibkeys=ISBN:0451526538&jscmd=viewapi&callback=mycallback"></script>

Formato de solicitud

El formato de la URL es similar a la sintaxis de URL que se usa para vincular a libros, pero el campo de ID del libro puede contener varios ID de libros separados por comas y hay parámetros adicionales "'jscmd"'callback'. De manera opcional, puede haber argumentos adicionales para controlar los filtros de visibilidad.

Dynamic Links admite varios métodos diferentes para identificar libros: ISBN, números de OCLC y claves LCCN. La API permite realizar consultas por lotes de hasta el tamaño máximo de una solicitud GET.

ISBN
&bibkeys=ISBN:0451526538 (la API admite los números ISBN 10 y 13).
OCLC
&bibkeys=OCLC:36792831
LCCN
&bibkeys=LCCN:96072233

Formato de resultados JSON

La llamada incluirá información sobre los libros solicitados que se muestran como uno o más objetos JSON. Los objetos JSON usan la siguiente estructura:

JsonSearchResult {
    string bib_key;
    string info_url;
    string preview_url;
    string thumbnail_url;
    string preview;
};

Estos campos proporcionan la siguiente información:

clave_bibliográfica
El identificador que se usa para consultar este libro.
URL_información
Una URL de una página de Google Libros con información sobre el libro (la página Acerca de este libro)
URL de vista previa
Es una URL a la vista previa del libro, que lleva al usuario directamente a la portada. Si solo hay disponibles vistas de fragmentos o ningún libro de vista previa para una solicitud, no se mostrará ninguna URL de vista previa.
miniatura_URL
Una URL a una miniatura de la portada del libro.
vista previa
Un valor que indica el estado de visibilidad del libro: full (para libros con vista completa), partial (para libros con vista previa limitada) o noview (para libros con vista previa de fragmentos o sin vista previa).
insertable
Este valor booleano es true si el libro se puede incorporar en páginas de terceros con el lector incorporado de la Búsqueda de libros.

La respuesta es un objeto JSON con dos campos, “books” que tiene el valor de un mapa de objetos de libro y “options” que contiene una lista de las opciones habilitadas para esa solicitud. Si no se especificó ninguna opción, se puede omitir el campo "options" en la respuesta. Por ejemplo:

Request:
https://books.google.com/books?jscmd=viewapi&bibkeys=0596000278,00-invalid-isbn,ISBN0765304368,0439554934&callback=ProcessGBSBookInfo

Response:
ProcessGBSBookInfo({
    "0596000278":{
        "bib_key":"0596000278",
        "info_url":"https://books.google.com/books?id=ezqe1hh91q4C&source=gbs_ViewAPI",
        "preview_url":"https://books.google.com/books?id=ezqe1hh91q4C&printsec=frontcover&sig=zSQ5gwlX1NZl_24M86KS8Rbj33Q&source=gbs_ViewAPI",
        "thumbnail_url":"https://books.google.com/books?id=ezqe1hh91q4C&pg=PR3&img=1&zoom=5&sig=bBmzIAIiCtMcM7Ii7TUHycqqEWg",
        "preview":"partial"
    },
    "ISBN0765304368":{
        "bib_key":"ISBN0765304368",
        "info_url":"https://books.google.com/books?id=gfg13CM_kU8C&source=gbs_ViewAPI",
        "preview_url":"https://books.google.com/books?id=gfg13CM_kU8C&printsec=frontcover&sig=jIrSb_SkcQRhy_VvtnKbTXjmvos&source=gbs_ViewAPI",
        "thumbnail_url":"https://books.google.com/books?id=gfg13CM_kU8C&pg=PP1&img=1&zoom=5&sig=LsTwGVAsy_qWYMPM6HVDTPAMokg",
        "preview":"full"
    },
    "0439554934":{
        "bib_key":"0439554934",
        "info_url":"https://books.google.com/books?id=iwiYGwAACAAJ&source=gbs_ViewAPI",
        "preview_url":"https://books.google.com/books?id=iwiYGwAACAAJ&source=gbs_ViewAPI",
        "thumbnail_url":"https://books.google.com/books?id=iwiYGwAACAAJ&printsec=frontcover&img=1&zoom=5&sig=_L6ySKDAs-8gNK28c3NyFdO22ZM",
        "preview":"noview"}
});

Luego, los desarrolladores pueden cambiar el contenido y el aspecto de sus páginas web en función de los resultados JSON recuperados del servidor GBS. En este momento, GBS no proporciona bibliotecas para modificar el DOM.

Parámetros y campos adicionales

jscmd.
La solicitud enviada a Google Libros
callback
Nombre de la función de JavaScript a la que pasamos la devolución.

Modo síncrono y asíncrono

Modo asíncrono

En el modo asíncrono, el desarrollador coloca la etiqueta <script> en el <head> del documento y construye la URL con todos los identificadores necesarios para renderizar la página. Los datos se reciben de la llamada en una variable. Esto hace que la información del libro esté disponible para el resto del documento y se pueda acceder a ella de inmediato en HTML y JavaScript.

Modo síncrono

En el modo síncrono, el desarrollador usa la URL en medio del código HTML <body>. La respuesta se controla mediante una devolución de llamada de JavaScript.

Preguntas frecuentes

P: ¿Necesito una clave de API o algún otro permiso para usar vínculos dinámicos?
R: No se necesita una clave de API ni ninguna otra autorización para usar vínculos dinámicos. Para comenzar, copia y pega uno de nuestros ejemplos y comienza a jugar.
P: ¿Qué sucede con los navegadores que no admiten JavaScript o que lo tienen inhabilitado?
R: No hay forma de probar si Google Libros tiene o no un libro cuando el navegador de un usuario no tiene JavaScript habilitado. Recomendamos usar la estructura de vínculos estáticos de Google Libros para los navegadores sin JavaScript, pero recuerda que no puedes saber con anticipación si Google Libros tiene el libro al que te estás vinculando.
P: ¿Cuántos libros puedo buscar de una vez?
R: La cantidad de libros que puedes buscar solo está limitada por la longitud de las solicitudes GET. En Microsoft Internet Explorer, la longitud máxima de las URL (2,083 caracteres) limita la longitud de las solicitudes GET.
P: Google Libros mostró resultados de un libro hace un momento. ¿Por qué no se muestran resultados ahora?
R: Dado que los desarrolladores suelen emitir una cantidad atípica de solicitudes, puedes tomar por precaución las precauciones de seguridad que se encuentran en Google Libros. Para verificar si esto está sucediendo, consulta lo que muestra la API. Si se trata de una solicitud para llenar un captcha, significa que se emitieron demasiadas consultas. Te recomendamos que accedas a Google Libros y vuelvas a intentarlo.
P.: ¿Qué sucede con la privacidad?
R: Cuando se responden consultas de visibilidad de libros, Google recibe datos de registro del servidor que no son de identificación personal. Nos tomamos muy en serio la privacidad del usuario y tratamos estos datos como se describe en nuestra Política de Privacidad. Si ofreces a los usuarios un servicio que incluye visibilidad de libros, puedes informarles que también envía consultas a Google a través de vínculos dinámicos.

Muestras de código

En esta sección, se proporcionan ejemplos que ilustran diferentes formas de usar Dynamic Links. Puedes hacer clic en cualquier ejemplo para verlo en acción. Para ver el código subyacente, "ver código fuente" desde tu navegador.

  • Botón de vista previa de la página de un libro
    Si tienes la intención de usar Dynamic Links para agregar botones a una vista previa de un libro en particular, este ejemplo es para ti. Esta implementación usa una llamada síncrona para Google Libros.
  • Lista de lectura de cursos
    En este ejemplo, se muestra una lista de libros típica para un curso académico. Utilizamos una única llamada síncrona para vincular las páginas de libros en Google Libros, agregar imágenes de portada e indicar la disponibilidad de la vista previa.
  • Lista de libros alternativa
    Al igual que en el ejemplo anterior, esta muestra agrega vínculos a la Búsqueda de libros mediante una devolución de llamada de API asíncrona.
  • AJAX interactivo
    Es posible que te interese usar Dynamic Links en una aplicación AJAX altamente interactiva. En este ejemplo, se muestra cómo realizar varias llamadas diferentes sin actualizar la página.