Dynamic Links

Mit der Funktion „Dynamische Links“ von Google Books können Sie auf Ihrer Website anpassbare und zuverlässigere Links zu Google Books erstellen. Mit diesem Tool können Sie beispielsweise „intelligente“ Links generieren, die nur angezeigt werden, wenn sich ein Buch in unserem Index befindet, oder Links anzeigen, die Ihre Nutzer darüber informieren, ob ein Buch in Google Books in der Vorschau angezeigt werden kann. Mit der Funktion „Dynamische Links“ können Sie Ihrem Link zu Google Books auch eine Miniaturansicht hinzufügen. Mithilfe dieses Dokuments können Sie diese Funktion schnell zu Ihrer Website hinzufügen.

Hinweis: Diese Funktion hieß früher Book Viewability API.

Der Vorschauassistent ist ein Tool, das auf Dynamic Links basiert und es noch einfacher macht, mit nur wenigen Codezeilen Links zu Buchvorschauen von der Website zu erstellen. Dieses Dokument ist für fortgeschrittene Entwickler gedacht, die die Verknüpfung zur Buchsuche anpassen möchten.

Inhalt

  1. Zielgruppe
  2. Terminologie für die Buchsuche
  3. Einführung
  4. Branding-Richtlinien
  5. Clientseitige API
    1. Format der Anfrage-URL
    2. JSON-Ergebnisformat
  6. Synchrone und asynchrone Modi
  7. Häufig gestellte Fragen
  8. Codebeispielen

Zielgruppe

Die Dokumentation zu dynamischen Links richtet sich an Programmierer, die Webanwendungen schreiben möchten, die auf Bücher in Google Books verlinken. In dieser Dokumentation wird davon ausgegangen, dass Sie mit dem HTTP-Protokoll und den grundlegenden JavaScript-Funktionen vertraut sind.

Terminologie für die Google Buchsuche

Google Books respektiert die lokalen Urheberrechtsbeschränkungen des Nutzers. Daher sind Vorschauen oder Vollansichten einiger Bücher nicht überall verfügbar. Die Sichtbarkeit ist in die folgenden Klassen gruppiert:

Vollansicht
Das gesamte Buch kann angesehen werden. Diese Bücher sind möglicherweise urheberrechtsfrei („Public Domain“).
Begrenzte Vorschau
Ein Teil des Buchs ist sichtbar. Dieses Buch unterliegt dem Urheberrecht und Google Books hat die Genehmigung erhalten, diese Seiten für Nutzer zugänglich zu machen. Diese Bücher unterscheiden sich von Büchern in der Snippet-Ansicht dadurch, dass Nutzer sich ganze Seiten ansehen können.
Auszugsansicht und keine Vorschau
Nutzer sehen nur die Seite „Über das Buch“. Es sind höchstens kurze Auszüge aus dem Buch verfügbar. Dieses Buch wurde entweder nicht gescannt oder unterliegt dem Urheberrecht und Google Books hat keine Berechtigung erhalten, mehr als einige "Snippets" im Zusammenhang mit dem Suchbegriff eines Nutzers bereitzustellen.

Einführung

In der Dokumentation zu statischen Links wird eine sehr einfache Möglichkeit beschrieben, URLs zu einer bestimmten Buchseite bei Google Books zu erstellen. Leider kommt es manchmal vor, dass ein bestimmtes Buch nicht im Index von Google Books enthalten ist oder dass für einen Nutzer an einem bestimmten geografischen Standort keine Vorschau verfügbar ist. Da statische Links "blind" sind, haben sie manchmal nicht die beabsichtigte Wirkung.

Dynamic Links ist eine alternative, programmatische clientseitige Methode zum Abfragen der Sichtbarkeit eines Buchs mithilfe von JavaScript. Auf diese Weise können Sie zuverlässigere und vorhersehbarere Links zur Buchsuche hinzufügen, was zu einer einheitlicheren Nutzererfahrung führt. Da die Sichtbarkeit je nach Standort des Endnutzers variiert, ist die Oberfläche für dynamische Links nicht für serverseitige oder Offlineabfragen vorgesehen.

Einen Eindruck der Funktionen von Dynamic Links erhalten Sie in den Codebeispielen am Ende dieses Dokuments.

Branding-Richtlinien

Beim Rendern von Dynamic Links müssen Sie die Branding-Richtlinien einhalten, die für die Google Books API-Familie gelten. Insbesondere

  • Sie müssen dafür sorgen, dass die Quellenangaben sowie die Links zu Google Books bestehen.
  • Sie dürfen nur die genehmigte Schaltfläche für die Google Vorschau verwenden, wenn Sie Vorschauen in Google Books verlinken.
  • Alle Textlinks, Schaltflächen, Dokumentationen oder Beschreibungen müssen den genehmigten Namenskonventionen entsprechen. Beispielsweise sollten Sie die Verben "herunterladen" oder "lesen" nicht verwenden, wenn Sie auf die Google Books-Vorschau verlinken, da nur urheberrechtsfreie Werke von Büchern vollständig heruntergeladen werden können.

Beispiel-Branding

Freakonomics: Ein Rogue Economist erforscht die verborgene Seite von allem
Von Steven Levitt und Stephen Dubner

Der Abschnitt „Beispiele“ am Ende dieses Dokuments enthält zusätzliche Beispiele, die den aktuellen Branding-Richtlinien entsprechen.

Clientseitige API

Das Herzstück des clientseitigen dynamischen Links ist ein URL-Format, mit dem Entwickler URLs erstellen können, die Informationen zu einem oder mehreren Büchern anfordern. Anschließend können Anfragen mithilfe des <script>-Tags an Google Books gesendet werden.

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

Anfrageformat

Das Format der URL ähnelt der URL-Syntax, die zum Verlinken auf Bücher verwendet wird. Das Buch-ID-Feld kann jedoch mehrere durch Kommas getrennte Buch-IDs enthalten und es gibt die zusätzlichen Parameter „jscmd“ und „callback“. Optional können zusätzliche Argumente zur Steuerung der Sichtbarkeitsfilter verwendet werden.

Dynamic Links unterstützt verschiedene Methoden zur Identifizierung von Büchern: ISBNs, OCLC-Nummern und LCCN-Schlüssel. Die API ermöglicht Batch-Abfragen bis zur maximalen Größe einer GET-Anfrage.

ISBN
&bibkeys=ISBN:0451526538 (Die API unterstützt sowohl ISBN 10 als auch ISBN 13.)
OCLC
&bibkeys=OCLC:36792831
Logo: LCCN
&bibkeys=LCCN:96072233

JSON-Ergebnisformat

Die Antwort auf diesen Aufruf enthält Informationen über die angeforderten Bücher, die als ein oder mehrere JSON-Objekte zurückgegeben werden. Die JSON-Objekte haben die folgende Struktur:

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

Diese Felder enthalten die folgenden Informationen:

bib_key
Die ID, die für die Abfrage dieses Buchs verwendet wird.
info_url
Eine URL zu einer Seite in Google Books mit Informationen zum Buch (die Seite „Über dieses Buch“).
preview_url
Eine URL zur Vorschau des Buchs, über die der Nutzer direkt zum Cover des Buchs gelangt. Wenn für eine Anfrage nur Bücher in der Auszugsansicht oder keine Vorschau verfügbar sind, wird keine Vorschau-URL zurückgegeben.
thumbnail_url
Eine URL zu einer Miniaturansicht des Buchcovers.
Vorschau
Ein Wert, der den Sichtbarkeitsstatus des Buchs angibt: full (für Bücher mit vollständiger Ansicht), partial (für Bücher mit eingeschränkter Vorschau) oder noview (für Bücher mit Snippets oder keine Vorschau).
einbettbar
Dieser boolesche Wert ist true, wenn das Buch mithilfe des eingebetteten Betrachters der Buchsuche auf Seiten von Drittanbietern eingebettet werden kann.

Die Antwort ist ein JSON-Objekt mit zwei Feldern: „books“, das den Wert einer Zuordnung von Buchobjekten enthält, und „options“, das eine Liste der für diese Anfrage aktivierten Optionen enthält. Wenn keine Optionen angegeben wurden, kann das Feld „options“ in der Antwort weggelassen werden. Beispiel:

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

Entwickler können dann den Inhalt und das Aussehen ihrer Webseiten basierend auf den vom GBS-Server abgerufenen JSON-Ergebnissen ändern. Derzeit stellt GBS keine Bibliotheken zum Ändern des DOMs zu diesem Zweck zur Verfügung.

Parameter und zusätzliche Felder

jscmd
Die Anfrage an Google Books.
callback
Name der JavaScript-Funktion, an die die Rückgabe gesendet wird.

Synchroner und asynchroner Modus im Vergleich

Asynchroner Modus

Im asynchronen Modus platziert der Entwickler das <script>-Tag im <head>-Element des Dokuments und erstellt die URL mit allen IDs, die zum Rendern der Seite erforderlich sind. Die Daten werden vom Aufruf in einer Variablen empfangen. Dadurch sind die Informationen des Buchs für den Rest des Dokuments verfügbar und können sofort über HTML und JavaScript aufgerufen werden.

Synchroner Modus

Im synchronen Modus verwendet der Entwickler die URL in der Mitte des HTML-<body>. Die Antwort wird über einen JavaScript-Callback verarbeitet.

Häufig gestellte Fragen

F: Benötige ich einen API-Schlüssel oder eine andere Berechtigung, um dynamische Links verwenden zu können?
A: Für dynamische Links sind weder ein API-Schlüssel noch eine andere Autorisierung erforderlich. Kopieren Sie einfach eines unserer Beispiele, fügen Sie es ein und legen Sie los.
F: Was ist mit Browsern, die JavaScript nicht unterstützen oder deaktiviert haben?
A: Wenn im Browser eines Nutzers JavaScript nicht aktiviert ist, gibt es keine Möglichkeit zu testen, ob es bei Google Books ein Buch gibt. Wir empfehlen, für Browser ohne JavaScript die statische Linkstruktur von Google Books zu verwenden. Sie können jedoch nicht im Voraus wissen, ob das Buch, auf das Sie verlinken, in Google Books verfügbar ist.
F: Nach wie vielen Büchern kann ich gleichzeitig suchen?
A: Die Anzahl der Bücher, nach denen gesucht werden kann, ist nur durch die Länge der GET-Anfragen begrenzt. Im Microsoft Internet Explorer ist die Länge von GET-Anforderungen durch die maximale URL-Länge (2.083 Zeichen) begrenzt.
F: Google Books hat gerade vor Kurzem Ergebnisse für ein Buch zurückgegeben. Warum werden jetzt keine Ergebnisse angezeigt?
A: Da Entwickler häufig eine ungewöhnlich hohe Anzahl von Anfragen ausgeben, können Sie versehentlich ein Trinkgeld an die Sicherheitsvorkehrungen von Google Books geben. Um zu überprüfen, ob dies der Fall ist, sehen Sie sich an, was von der API zurückgegeben wird. Falls es sich um eine Aufforderung zum Ausfüllen eines Captcha handelt, haben Sie zu viele Anfragen gestellt. Melden Sie sich in Google Books an und versuchen Sie es noch einmal.
F: Was ist mit dem Datenschutz?
A: Google erhält für die Beantwortung von Fragen zur Sichtbarkeit von Büchern nicht personenidentifizierbare Serverprotokolldaten. Wir nehmen den Datenschutz unserer Nutzer sehr ernst und behandeln diese Daten gemäß unserer Datenschutzerklärung. Wenn Sie Nutzern einen Dienst anbieten, der die Sichtbarkeit von Büchern einschließt, sollten Sie Ihre Nutzer darüber informieren, dass Ihr Dienst Anfragen auch über dynamische Links an Google sendet.

Codebeispiele

Dieser Abschnitt enthält Beispiele, die verschiedene Möglichkeiten für die Verwendung von Dynamic Links veranschaulichen. Klicken Sie auf ein Beispiel, um es in Aktion zu sehen. Um den zugrunde liegenden Code zu sehen, wählen Sie die Option „Quellcode anzeigen“ in Ihrem Browser aus.

  • Vorschauschaltfläche für eine Buchseite
    Dies ist ein Beispiel, wenn Sie Dynamic Links verwenden möchten, um einzelnen Buchseiten Ihrer Website Vorschauschaltflächen hinzuzufügen. Bei dieser Implementierung wird ein synchroner Aufruf an Google Books verwendet.
  • Kursleseliste
    Dieses Beispiel zeigt eine typische Buchliste für einen akademischen Kurs. Wir verwenden einen einzigen synchronen Aufruf, um auf Buchseiten in Google Books zu verlinken, Titelbilder hinzuzufügen und die Verfügbarkeit der Vorschau anzugeben.
  • Liste alternativer Bücher
    Ähnlich wie im vorherigen Beispiel werden in diesem Beispiel Links zur Buchsuche mithilfe eines asynchronen API-Callbacks hinzugefügt.
  • Interaktives AJAX
    Die Verwendung von Dynamic Links in einer äußerst interaktiven AJAX-Anwendung ist möglicherweise für Sie von Interesse. In diesem Beispiel wird gezeigt, wie Sie eine Reihe verschiedener Aufrufe senden, ohne die Seite zu aktualisieren.