Entwicklerhandbuch: JavaScript

Mit der Blogger Data API können Clientanwendungen Blogger-Inhalte in Form von Google Data API-Feeds anzeigen und aktualisieren.

Ihre Client-Anwendung kann die Blogger Data API verwenden, um neue Blogposts zu erstellen, vorhandene Blogposts zu bearbeiten oder zu löschen und Blogposts abzufragen, die bestimmten Kriterien entsprechen.

Zusätzlich zu einigen Hintergrundinformationen zu den Funktionen der Blogger Data API enthält dieses Dokument Beispiele für grundlegende Data API-Interaktionen unter Verwendung der JavaScript-Clientbibliothek. Weitere Informationen zum zugrunde liegenden Protokoll, das von der Bibliothek verwendet wird, finden Sie im Abschnitt zu Protokollen im Entwicklerhandbuch.

Inhalt

Zielgruppe

Dieses Dokument richtet sich an Programmierer, die JavaScript-Clientanwendungen schreiben möchten, die mit Blogger interagieren können. Sie enthält eine Reihe von Beispielen für grundlegende Data API-Interaktionen unter Verwendung der JavaScript-Clientbibliothek.

Referenzinformationen zur Blogger Data API finden Sie im Leitfaden zu Protokollen. In diesem Dokument wird davon ausgegangen, dass Sie die allgemeinen Konzepte des Google Data APIs-Protokolls sowie das Datenmodell und den Kontrollfluss kennen, die von der JavaScript-Clientbibliothek verwendet werden. Außerdem sollten Sie mit JavaScript-Programmierkenntnissen vertraut sein.

Referenzinformationen zu den von der Clientbibliothek bereitgestellten Klassen und Methoden finden Sie in der API-Referenz zur JavaScript-Clientbibliothek.

Dieses Dokument soll in der richtigen Reihenfolge gelesen werden. Jedes Beispiel baut auf früheren Beispielen auf.

Nutzungsbedingungen

Du stimmst den Nutzungsbedingungen der Google JavaScript-Clientbibliothek zu, wenn du die JavaScript-Clientbibliothek verwendest.

Unterstützte Umgebungen

Derzeit werden nur JavaScript-Clientanwendungen unterstützt, die auf einer Webseite in einem Browser ausgeführt werden. Derzeit werden die Browser Firefox 1.5 und höher und Internet Explorer 6.0 und höher unterstützt.

Die JavaScript-Clientbibliothek übernimmt die gesamte Kommunikation mit dem Server des Dienstes. Wenn Sie ein erfahrener JS-Entwickler sind, denken Sie vielleicht: „Aber was ist mit der Richtlinie für denselben Ursprung?“ Mit der JavaScript-Clientbibliothek kann Ihr Client Google Data API-Anfragen von einer beliebigen Domain senden und gleichzeitig die Compliance mit dem Browsersicherheitsmodell aufrechterhalten.

Erste Schritte

Bevor Sie eine JavaScript-Clientanwendung schreiben können, müssen Sie einige Einstellungen vornehmen, um die Bibliothek zu erhalten.

Erstellen eines Blogger-Kontos

Du kannst dich zu Testzwecken für ein Blogger-Konto registrieren. Blogger verwendet Google-Konten. Wenn du also bereits ein Google-Konto hast, bist du startklar.

Bibliothek übernehmen

Bevor Ihr Client die Clientbibliothek verwenden kann, muss er den Code der Clientbibliothek vom Server anfordern.

Verwenden Sie zuerst ein <script>-Tag im Abschnitt <head> Ihres HTML-Dokuments, um das Google AJAX API-Ladeprogramm abzurufen:

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

Um die Google Data API-Clientbibliothek nach dem Abrufen des Ladeprogramms zu erhalten, verwenden Sie die folgende Zeile in Ihrem JavaScript-Einrichtungscode, der aus dem Abschnitt <head> Ihres HTML-Dokuments (oder aus einer JavaScript-Datei, die im Abschnitt <head> Ihres HTML-Dokuments mithilfe eines <script>-Tags enthalten ist) aufgerufen werden muss:

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

Der zweite Parameter für google.load() ist die angeforderte Versionsnummer der JavaScript-Clientbibliothek.Unser Versionsnummerierungsschema ist dem Schema der Google Maps API nachempfunden. Hier sind die möglichen Versionsnummern und ihre Bedeutung:

"1"
Die vorletzte Nebenversion der Hauptversion 1.
"1.x"
Die aktuellste Version der Hauptversion 1.
"1.s"
Die letzte stabile Version der Hauptversion 1. Auf der Grundlage der Rückmeldungen, die wir von Entwicklern enthalten, erklären wir von Zeit zu Zeit eine bestimmte Version der Client-Bibliothek für "stabil,". Möglicherweise enthält diese Version jedoch nicht die neuesten Funktionen.
"1.0", "1.1" usw.
Eine bestimmte Version der Bibliothek mit einer angegebenen Haupt- und Nebenversionsnummer.

Nachdem Sie google.load() aufgerufen haben, müssen Sie dem Loader mitteilen, dass er warten soll, bis die Seite fertig geladen ist, und dann den Code aufrufen:

google.setOnLoadCallback(getMyBlogFeed);

Dabei ist getMyBlogFeed() eine Funktion, die in einem späteren Abschnitt dieses Dokuments definiert wird. Verwenden Sie diesen Ansatz, anstatt einen onload-Handler an das <body>-Element anzuhängen.

Beim Blogger-Dienst authentifizieren

Mit der Blogger Data API können Sie sowohl auf öffentliche als auch auf private Feeds zugreifen. Für öffentliche Feeds ist keine Authentifizierung erforderlich, sie sind jedoch schreibgeschützt. Wenn du Blogs ändern möchtest, muss sich dein Kunde vor dem Anfordern von privaten Feeds authentifizieren.

Die JavaScript-Clientbibliothek verwendet das AuthSub-Authentifizierungssystem. Weitere Informationen zur Authentifizierung mit Google Data APIs im Allgemeinen finden Sie in der Dokumentation zur Authentifizierung.

AuthSub-Proxy-Authentifizierung

Die AuthSub-Proxy-Authentifizierung wird von Webanwendungen verwendet, die ihre Nutzer für Google-Konten authentifizieren müssen. Der Websitebetreiber und der Clientcode haben keinen Zugriff auf den Nutzernamen und das Passwort des Blogger-Nutzers. Stattdessen erhält der Client spezielle AuthSub-Tokens, mit denen der Client im Namen eines bestimmten Nutzers handeln kann.

Hier ein kurzer Überblick darüber, was während des Authentifizierungsvorgangs für einen webbasierten JavaScript-Client passiert:

  1. Die Clientanwendung ruft die von der Clientbibliothek bereitgestellte Methode google.accounts.user.login() auf und übergibt ihr einen „Scope“-Wert, der angibt, welcher Google-Dienst verwendet werden soll. Bei Blogger lautet der Geltungsbereich "http://www.blogger.com/feeds/".
  2. Die Clientbibliothek sendet den Browser an die Google-Seite „Zugriffsanfrage“. Dort kann der Nutzer seine Anmeldedaten eingeben, um sich beim Dienst anzumelden.
  3. Wenn sich der Nutzer erfolgreich anmeldet, sendet das AuthSub-System den Browser zurück an die URL des Webclients und leitet das Authentifizierungstoken weiter.
  4. Die JavaScript-Clientbibliothek speichert das Token in einem Cookie und gibt die Steuerung an die Funktion der Clientanwendung zurück, die google.accounts.user.login() aufgerufen hat.
  5. Wenn die Clientanwendung anschließend Clientbibliotheksmethoden aufruft, die mit Blogger interagieren, wird das Token automatisch an alle Anfragen angehängt.

Hinweis: Damit die JavaScript-Clientbibliothek authentifizierte Blogger-Anfragen in einem Webbrowser senden kann, muss Ihre Seite ein Bild enthalten, das in derselben Domain wie Ihre Seite gehostet wird. Dabei kann es sich um ein beliebiges Bild handeln, auch um ein transparentes Bild mit einem Pixel. Auf der Seite muss jedoch ein Bild vorhanden sein. Wenn du nicht möchtest, dass das Bild auf deiner Seite erscheint, kannst du das Attribut style des <img>-Tags verwenden, um es außerhalb des Renderingbereichs zu positionieren. Beispiele: style="position:absolute; top: -1000px;"

Hier ist der Client-Anwendungscode, der die Anmeldung verarbeitet. Die Funktion setupMyService() wird später aus anderem Code aufgerufen.

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

Tipp: Wir empfehlen dringend, eine Anmeldeschaltfläche oder einen anderen Nutzereingabemechanismus anzugeben, über den der Nutzer aufgefordert wird, den Anmeldeprozess manuell zu starten. Wenn Sie stattdessen google.accounts.user.login() direkt nach dem Laden aufrufen und nicht auf die Nutzerinteraktion warten, sieht der Nutzer bei seiner Ankunft auf Ihrer Seite als Erstes eine Google-Anmeldeseite. Wenn sich der Nutzer entscheidet, sich nicht anzumelden, wird er von Google nicht zurück auf deine Seite geleitet. Aus Sicht des Nutzers hat er versucht, deine Seite zu besuchen, wurde aber weggeleitet und nicht zurückgeschickt. Dieses Szenario kann für Nutzer verwirrend und frustrierend sein. Im Beispielcode in diesem Dokument wird direkt nach dem Laden google.accounts.user.login() aufgerufen, um das Beispiel einfach zu halten. Für echte Clientanwendungen wird dieser Ansatz jedoch nicht empfohlen.

Sie müssen nichts mit der Variablen token tun. Die Clientbibliothek verfolgt das Token, sodass Sie dies nicht tun müssen.

Hinweis: Wenn Sie ein neues BloggerService-Objekt erstellen, ruft die Clientbibliothek eine Methode mit dem Namen google.gdata.client.init() auf. Diese prüft, ob der Browser, in dem der Client ausgeführt wird, unterstützt wird. Wenn ein Fehler auftritt, zeigt die Clientbibliothek dem Nutzer eine Fehlermeldung an. Wenn Sie diese Art von Fehler selbst beheben möchten, können Sie vor dem Erstellen des Dienstes explizit google.gdata.client.init(handleInitError) aufrufen, wobei handleInitError() Ihre Funktion ist. Wenn ein Init-Fehler auftritt, empfängt Ihre Funktion ein Standardfehlerobjekt. Sie können mit diesem Objekt beliebige Aktionen ausführen.

Das Token bleibt so lange gültig, bis Sie es durch Aufrufen von google.accounts.user.logout() widerrufen:

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

Wenn Sie logout() nicht aufrufen, bleibt das Cookie, in dem das Token gespeichert ist, zwei Jahre lang bestehen, es sei denn, der Nutzer löscht es. Das Cookie wird über mehrere Browsersitzungen hinweg beibehalten, sodass der Nutzer seinen Browser schließen und wieder öffnen kann, um zum Client zurückzukehren und weiterhin angemeldet zu sein.

Unter bestimmten Umständen kann ein Token jedoch während einer Sitzung ungültig werden. Wenn Blogger ein Token ablehnt, sollte der Client mit der Fehlerbedingung umgehen. Dazu ruft er logout() auf, um das Cookie mit dem aktuellen Token zu entfernen, und ruft dann noch einmal login() auf, um ein neues, gültiges Token zu erhalten.

Es gibt zwei weitere AuthSub-Methoden, die in verschiedenen Kontexten nützlich sein können:

  • google.accounts.user.checkLogin(scope) gibt an, ob der Browser derzeit ein Authentifizierungstoken für den angegebenen Bereich hat.
  • google.accounts.user.getInfo() stellt detaillierte Informationen zum aktuellen Token für die Fehlerbehebung bereit.

Weitere Informationen zur Verwendung von JavaScript für die Interaktion mit AuthSub, einschließlich Informationen zur Tokenverwaltung und zu checkLogin() und getInfo(), finden Sie im Dokument AuthSub-Authentifizierung mit der JavaScript-Clientbibliothek verwenden.

Nach oben