Entwicklerleitfaden: JavaScript

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

Ihre Clientanwendung kann die Blogger Data API verwenden, um neue Blogposts zu erstellen, vorhandene Blogposts zu bearbeiten oder zu löschen und nach Blogposts zu suchen, die bestimmten Kriterien entsprechen.

Neben Informationen zu den Möglichkeiten der Blogger Data API enthält dieses Dokument auch Beispiele für grundlegende Data API-Interaktionen mit der JavaScript-Clientbibliothek. Weitere Informationen zum zugrunde liegenden Protokoll, das in der Bibliothek verwendet wird, finden Sie im Abschnitt zu Protokollen in diesem Entwicklerleitfaden.

Inhalt

Zielgruppe

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

Referenzinformationen zur Blogger Data API finden Sie im Referenzleitfaden zum Protokoll. In diesem Dokument wird davon ausgegangen, dass Sie die allgemeinen Ideen für das Google Data APIs-Protokoll sowie das Datenmodell und den Ablauf von Daten kennen, das in der JavaScript-Clientbibliothek verwendet wird. Außerdem wird vorausgesetzt, dass Sie wissen, wie man in JavaScript programmiert.

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

Dieses Dokument ist in der richtigen Reihenfolge geschrieben. Jedes Beispiel baut auf früheren Beispielen auf.

Nutzungsbedingungen

Sie erklären sich damit einverstanden, die Nutzungsbedingungen für die Google JavaScript-Clientbibliothek bei der Verwendung der JavaScript-Clientbibliothek einzuhalten.

Unterstützte Umgebungen

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

Die JavaScript-Clientbibliothek übernimmt die gesamte Kommunikation mit dem Dienstserver. Wenn Sie ein erfahrener JS-Entwickler sind, denken Sie vielleicht: Aber was ist mit der gleichen Ursprungsrichtlinie?" Mit der JavaScript-Clientbibliothek kann Ihr Client Google Data API-Anfragen von jeder Domain senden und gleichzeitig das Browsersicherheitsmodell einhalten.

Erste Schritte

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

Blogger-Konto erstellen

Du kannst dich auch für ein Blogger-Konto registrieren. Blogger verwendet Google-Konten. Wenn Sie also bereits ein Google-Konto haben, müssen Sie nichts weiter tun.

Bibliothek erwerben

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

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

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

Wenn Sie die Google Data API-Clientbibliothek nach dem Abrufen des Ladeprogramms erhalten möchten, verwenden Sie die folgende Zeile in Ihrem JavaScript-Einrichtungscode. Sie muss im Abschnitt <head> des HTML-Dokuments oder aus einer JavaScript-Datei aufgerufen werden, die im Abschnitt <head> des HTML-Dokuments mit dem Tag <script> enthalten ist:

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

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

"1"
Die vorletzte Überarbeitung von Hauptversion 1.
"1.x"
Die aktuelle Überarbeitung der Hauptversion 1.
"1.s"
Die letzte stabile Überarbeitung von 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 festlegen, dass das Ladeprogramm wartet, bis die Seite fertig geladen ist, und dann den Code aufrufen:

google.setOnLoadCallback(getMyBlogFeed);

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

Authentifizierung beim Blogger-Dienst

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 aber schreibgeschützt. Wenn du Blogs ändern möchtest, muss sich dein Client authentifizieren, bevor du private Feeds anfordern kannst.

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

AuthSub-Proxy-Authentifizierung

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

Hier ein kurzer Überblick über die Schritte während des Authentifizierungsprozesses für einen webbasierten JavaScript-Client:

  1. Die Clientanwendung ruft die von der Clientbibliothek bereitgestellte Methode google.accounts.user.login() auf und übergibt ihr einen Wert, der angibt, welcher Google-Dienst verwendet werden soll. Bei Blogger ist der Bereich "http://www.blogger.com/feeds/".
  2. Die Clientbibliothek sendet den Browser an die Google-Seite zur Zugriffsanfrage, auf der der Nutzer seine Anmeldedaten eingeben kann, um sich beim Dienst anzumelden.
  3. Wenn sich der Nutzer erfolgreich anmeldet, sendet das AuthSub-System den Browser 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 mit dem Namen google.accounts.user.login() zurück.
  5. Wenn die Clientbibliothek anschließend Clientbibliotheksmethoden aufruft, die mit Blogger interagieren, wird das Token automatisch an alle Anfragen angehängt.

Hinweis: Damit die JavaScript-Clientbibliothek in Ihrem Webbrowser authentifizierte Blogger-Anfragen senden kann, muss Ihre Seite ein Bild enthalten, das in derselben Domain wie Ihre Seite gehostet wird. Das Bild kann ein beliebiges Bild sein, auch ein transparentes Einzelpixel-Bild, aber es muss ein Bild auf der Seite vorhanden sein. Wenn das Bild nicht auf deiner Seite angezeigt werden soll, kannst du das Attribut style des Tags <img> verwenden, um das Bild außerhalb des Renderingbereichs zu positionieren. Beispiel: style="position:absolute; top: -1000px;"

Hier ist der Clientanwendungscode, der die Anmeldung übernimmt. Die setupMyService()-Funktion wird später über einen anderen 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 Mechanismus zur Nutzereingabe bereitzustellen, damit der Nutzer den Anmeldevorgang manuell starten kann. Wenn du google.accounts.user.login() sofort nach dem Laden aufrufst, ohne auf die Interaktion des Nutzers zu warten, sieht der Nutzer als Erstes deine Google-Anmeldeseite. Wenn sich der Nutzer dagegen entscheidet, sich nicht anzumelden, leitet Google ihn nicht zurück auf deine Seite. Aus der Sicht des Nutzers versuchte er, deine Seite zu besuchen, wurde jedoch weg und nie geleitet. Dieses Szenario kann für Nutzer verwirrend und frustrierend sein. Im Beispielcode in diesem Dokument wird google.accounts.user.login() direkt nach dem Laden aufgerufen, um das Beispiel einfach zu halten. Wir empfehlen diesen Ansatz jedoch nicht für echte Clientanwendungen.

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

Hinweis: Wenn Sie ein neues BloggerService-Objekt erstellen, ruft die Clientbibliothek die Methode google.gdata.client.init() auf. Dadurch wird geprü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 google.gdata.client.init(handleInitError) vor dem Erstellen des Dienstes explizit aufrufen, wobei handleInitError() Ihre Funktion ist. Wenn ein Init-Fehler auftritt, empfängt Ihre Funktion ein standardmäßiges Fehlerobjekt. Sie können mit diesem Objekt alles tun, was Sie möchten.

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 zum Speichern des Tokens zwei Jahre lang bestehen, es sei denn, der Nutzer löscht es. Das Cookie wird über alle Browsersitzungen hinweg gespeichert, sodass der Nutzer seinen Browser schließen und wieder öffnen kann. Erst dann wird er wieder zu Ihrem Client weitergeleitet und er bleibt angemeldet.

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

Es gibt zwei weitere AuthSub-Methoden, die in verschiedenen Kontexten hilfreich 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 Authentifizierung mit der AuthSub-Authentifizierung mit der JavaScript-Clientbibliothek.

Nach oben