Dynamic Links

La fonctionnalité "Liens dynamiques" de Google Livres vous permet de créer sur votre site des liens plus fiables et personnalisables vers Google Livres. Par exemple, cet outil vous permet de générer des liens "intelligents" qui ne s'affichent que lorsqu'un livre figure dans notre index, ou des liens qui indiquent à vos utilisateurs si un livre peut être prévisualisé sur Google Livres. La fonctionnalité Dynamic Links vous permet également d'inclure une vignette dans votre lien vers Google Livres. L'objectif de ce document est de vous permettre d'ajouter rapidement cette fonctionnalité à votre site.

Remarque: Cette fonctionnalité était auparavant appelée "API Book Visibilité".

L'assistant de prévisualisation est un outil intégré aux liens dynamiques qui permet de créer encore plus facilement des liens vers des aperçus de livres sur votre site en copiant quelques lignes de code. Ce document s'adresse aux développeurs plus expérimentés qui souhaitent personnaliser leur lien vers Recherche de Livres.

Contenus

  1. Audience
  2. Terminologie associée à Google Recherche de Livres
  3. Introduction
  4. Consignes relatives à la marque
  5. L'API côté client
    1. Format de l'URL de la requête
    2. Format des résultats JSON
  6. Modes synchrone et asynchrone
  7. Questions fréquentes
  8. Exemples de code

Audience

La documentation sur les liens dynamiques est destinée aux programmeurs qui souhaitent créer des applications Web qui renvoient à des livres dans Google Livres. Dans cette documentation, nous partons du principe que vous connaissez le protocole HTTP et le code JavaScript de base.

Terminologie associée à la recherche de livres

Google Livres respecte les restrictions locales applicables aux droits d'auteur. Par conséquent, les aperçus et les vues complètes de certains livres ne sont pas disponibles partout. La visibilité est regroupée dans les classes suivantes:

Tout afficher
L'ensemble du livre peut être consulté. Ces livres peuvent appartenir au domaine public.
Aperçu limité
Une partie du livre est consultable. Ce livre est protégé par des droits d'auteur, et Google Livres a reçu l'autorisation de rendre ces pages accessibles aux utilisateurs. Ces livres diffèrent des livres en lecture d'extraits, car les utilisateurs peuvent lire des pages entières.
Affichage d'extraits et aucun aperçu
Les utilisateurs ne voient qu'une page"À propos du livre". Au maximum, seuls de courts extraits du livre sont disponibles. Ce livre n'a pas été numérisé ou est protégé par des droits d'auteur, et Google Livres n'a pas reçu l'autorisation d'exposer plus d'un ou plusieurs "extraits" en rapport avec le terme de recherche d'un utilisateur.

Présentation

La documentation sur les liens statiques décrit un moyen très simple de générer des URL vers la page d'un livre sur Google Livres. Malheureusement, il peut arriver qu'un livre ne figure pas dans l'index Google Livres ou qu'un aperçu ne soit pas disponible pour un utilisateur dans une zone géographique particulière. Étant donné que les liens statiques sont "aveugles", ils ne parviennent pas toujours à produire l'effet escompté.

Dynamic Links constitue une autre méthode côté client programmatique permettant d'interroger la visibilité d'un livre à l'aide de JavaScript. Cela vous permet d'inclure des liens plus fiables et prévisibles vers Google Recherche de Livres, pour une expérience plus cohérente pour vos utilisateurs. Étant donné que la visibilité varie en fonction de l'emplacement de l'utilisateur final, l'interface de lien dynamique n'est pas conçue pour les requêtes côté serveur ou hors connexion.

Pour avoir une idée de ce que vous pouvez faire avec les liens dynamiques, passez aux exemples de code à la fin de ce document.

Consignes relatives à la marque

Lorsque vous affichez des liens dynamiques, vous devez respecter les consignes relatives aux marques qui régissent la famille d'API Google Livres. En particulier,

  • Vous devez conserver les mentions et les liens vers Google Livres.
  • Vous ne devez utiliser que le bouton Google Preview lorsque vous créez des liens vers des aperçus sur Google Livres.
  • Tout lien textuel, bouton, documentation ou texte descriptif doit respecter les Conventions d'attribution de noms approuvées. Par exemple, vous ne devez pas utiliser les verbes "télécharger" ou "lire" lorsque vous créez des liens vers des aperçus Google Livres, car seules les œuvres appartenant au domaine public peuvent être téléchargées dans leur intégralité.

Exemple de branding

Freakonomics: An Rogue Economist Explores the Hidden Side of all Everything
Par Steven Levitt et Stephen Dubner

La section des exemples à la fin de ce document fournit des exemples supplémentaires conformes aux consignes actuelles relatives à la marque.

API côté client

Au cœur du lien dynamique côté client se trouve un format d'URL qui permet aux développeurs de créer des URL demandant des informations sur un ou plusieurs livres et d'envoyer ces demandes à Google Livres à l'aide de la balise <script>.

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

Format de demande

Le format de l'URL est semblable à celui de la syntaxe d'URL utilisée pour créer un lien vers des livres. Toutefois, le champ "ID du livre" peut contenir plusieurs ID de livre séparés par une virgule, et des paramètres supplémentaires sont ajoutés pour l'attribut "jscmd" et "callback". Des arguments supplémentaires peuvent éventuellement être présents pour contrôler les filtres de visibilité.

Dynamic Links accepte plusieurs méthodes d'identification des livres: les ISBN, les numéros OCLC et les clés LCCN. L'API autorise les requêtes par lot jusqu'à la taille maximale d'une requête GET.

ISBN
&bibkeys=ISBN:0451526538 (L'API accepte les ISBN 10 et 13.)
OCLC
&bibkeys=OCLC:36792831
Numéro LCCN
&bibkeys=LCCN:96072233

Format des résultats JSON

La réponse de cet appel fournit des informations sur les livres demandés renvoyés sous la forme d'un ou plusieurs objets JSON. Les objets JSON utilisent la structure suivante:

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

Ces champs fournissent les informations suivantes:

clé_bi
Identifiant utilisé pour interroger ce livre.
info_url [url_info]
URL d'une page Google Livres contenant des informations sur le livre (qui concerne la page"À propos du livre").
aperçu_url
URL renvoyant à l'aperçu du livre, qui redirige directement l'utilisateur vers sa couverture. Si seuls les extraits ou les livres d'aperçu ne sont pas disponibles pour une requête, aucune URL d'aperçu ne sera renvoyée.
vignette_url
URL renvoyant à la vignette de la couverture du livre.
bêta
Une valeur indiquant l'état de visibilité du livre: full (pour les livres consultables dans leur intégralité), partial (pour les livres en aperçu limité) ou noview (pour les livres dans l'extrait ou sans aperçu).
intégrable
Cette valeur booléenne est true si le livre peut être intégré à des pages tierces à l'aide de la visionneuse intégrée de Google Livres.

La réponse est un objet JSON comportant deux champs, "books" (livres), qui possède la valeur d'un mappage d'objets "book" (livres) et un paramètre "options" (options), qui contient la liste des options activées pour cette requête. Si aucune option n'est spécifiée, le champ "options" peut être omis dans la réponse. Exemple :

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"}
});

Les développeurs peuvent ensuite modifier le contenu et l'apparence de leurs pages Web en fonction des résultats JSON récupérés sur le serveur GBS. Pour le moment, GBS ne fournit pas de bibliothèques permettant de modifier le DOM à cette fin.

Paramètres et champs supplémentaires

jscmd
Demande envoyée à Google Livres.
rappel
Nom de la fonction JavaScript à laquelle le renvoi est renvoyé.

Mode synchrone ou asynchrone

Mode asynchrone

En mode asynchrone, le développeur place la balise <script> dans le <head> du document et construit l'URL avec tous les identifiants nécessaires pour afficher la page. Les données sont reçues de l'appel dans une variable. Les informations sur le livre sont alors disponibles pour le reste du document, et sont immédiatement accessibles dans le code HTML et JavaScript.

Mode synchrone

En mode synchrone, le développeur utilise l'URL au milieu du code HTML <body>. La réponse est gérée à l'aide d'un rappel JavaScript.

Questions fréquentes

Q: Ai-je besoin d'une clé API ou d'une autre autorisation pour utiliser des liens dynamiques ?
R: Aucune clé API ni autre autorisation n'est nécessaire pour utiliser les liens dynamiques. Pour commencer, il vous suffit de copier l'un de nos exemples, puis de le coller.
Q: Qu'en est-il des navigateurs qui ne prennent pas en charge JavaScript ou qui le désactivent ?
R: Il n'existe aucun moyen de vérifier si Google Livres est disponible ou non lorsque le navigateur d'un utilisateur n'a pas activé JavaScript. Nous vous recommandons d'utiliser la structure de liens statiques de Google Livres pour les navigateurs sans JavaScript, mais vous ne pouvez pas savoir à l'avance si Google Livres contient ou non le livre vers lequel vous créez des liens.
Q: Combien de livres puis-je rechercher en même temps ?
R: Le nombre de livres que vous pouvez rechercher n'est limité que par la longueur des requêtes GET. Dans Microsoft Internet Explorer, la longueur maximale de l'URL (2 083 caractères) limite la longueur des requêtes GET.
Q: Il y a quelques instants, Google Livres renvoyait les résultats d'un livre. Pourquoi ne renvoie-t-il pas de résultats maintenant ?
R: Il est fréquent que les développeurs émettent des quantités inhabituelles de demandes. Par conséquent, vous pouvez faire accidentellement attention aux précautions de sécurité que propose Google Livres. Pour savoir si c'est le cas, examinez les données renvoyées par l'API. S'il s'agit d'une requête de saisie d'un captcha, cela signifie que vous avez émis trop de requêtes. Nous vous recommandons de vous connecter à Google Livres et de réessayer.
Q: Qu'en est-il de la confidentialité ?
R: Lorsque nous répondons à des requêtes concernant la visibilité d'un livre, Google reçoit des données de journalisation non personnelles du serveur. Nous accordons une grande importance à la confidentialité des données des utilisateurs et traitons ces données conformément à nos Règles de confidentialité. Si vous proposez un service incluant la visibilité des livres, vous pouvez informer vos utilisateurs que votre service envoie également des requêtes à Google via des liens dynamiques.

Exemples de code

Cette section fournit des exemples qui illustrent différentes manières d'utiliser les liens dynamiques. Vous pouvez cliquer sur un exemple pour le voir en action. Pour afficher le code sous-jacent, affichez la source dans votre navigateur.

  • Bouton d'aperçu pour une page de livre
    Si vous envisagez d'utiliser des liens dynamiques pour ajouter des boutons d'aperçu à des pages de livres individuelles sur votre site, cet exemple est fait pour vous. Cette implémentation utilise un appel synchrone à Google Livres.
  • Liste de lecture des cours
    Cet exemple présente une liste de livres pour un cours universitaire. Nous utilisons un seul appel synchrone pour ajouter un lien vers des pages de livres sur Google Livres, ajouter des images de couverture et indiquer la disponibilité des aperçus.
  • Autre liste de livres
    Comme dans l'exemple précédent, cet exemple ajoute des liens à Book Search à l'aide d'un rappel d'API asynchrone.
  • AJAX interactif
    L'utilisation de Dynamic Links pourrait vous intéresser, dans une application AJAX très interactive. Cet exemple montre comment effectuer un certain nombre d'appels différents sans actualiser la page.