Mit der Blogger Data API können Clientanwendungen Blogger-Inhalte in Form von Google Data API-Feeds aufrufen und aktualisieren.
Mit der Blogger Data API können Sie in Ihrer Clientanwendung neue Blogbeiträge erstellen, vorhandene Blogbeiträge bearbeiten oder löschen und nach Blogbeiträgen suchen, die bestimmten Kriterien entsprechen.
Dieses Dokument enthält nicht nur einige Hintergrundinformationen zu den Funktionen der Blogger Data API, sondern auch Beispiele für grundlegende Data API-Interaktionen mit der JavaScript-Clientbibliothek. Weitere Informationen zum zugrunde liegenden Protokoll, das von der Bibliothek verwendet wird, finden Sie im Abschnitt zum Protokoll dieses Entwicklerhandbuchs.
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 Daten-API-Interaktionen mit der JavaScript-Clientbibliothek.
Referenzinformationen zur Blogger Data API finden Sie im Referenzhandbuch für Protokolle. In diesem Dokument wird davon ausgegangen, dass Sie die allgemeinen Konzepte des Google Data APIs-Protokolls sowie das Datenmodell und den Kontrollfluss der JavaScript-Clientbibliothek kennen. Außerdem sollten Sie mit JavaScript programmieren können.
Referenzinformationen zu den Klassen und Methoden der Clientbibliothek finden Sie in der API-Referenz der JavaScript-Clientbibliothek.
Dieses Dokument ist so konzipiert, dass es in der angegebenen Reihenfolge gelesen werden sollte. Jedes Beispiel baut auf den vorherigen Beispielen auf.
Nutzungsbedingungen
Sie erklären sich damit einverstanden, die Nutzungsbedingungen für die JavaScript-Clientbibliothek von Google einzuhalten, wenn Sie die JavaScript-Clientbibliothek verwenden.
Unterstützte Umgebungen
Derzeit werden nur JavaScript-Clientanwendungen unterstützt, die in einer Webseite in einem Browser ausgeführt werden. Derzeit werden Firefox 1.5 und höher sowie Internet Explorer 6.0 und höher unterstützt.
Die JavaScript-Clientbibliothek übernimmt die gesamte Kommunikation mit dem Server des Dienstes. Als erfahrener JS-Entwickler fragen Sie sich vielleicht: „Aber was ist mit der Same-Origin-Richtlinie?“ Mit der JavaScript-Clientbibliothek kann Ihr Client Google Data API-Anfragen von jeder Domain aus senden und dabei das Browsersicherheitsmodell einhalten.
Erste Schritte
Bevor Sie eine JavaScript-Clientanwendung schreiben können, müssen Sie einige Schritte zur Einrichtung der Bibliothek ausführen.
Blogger-Konto erstellen
Sie können sich für Testzwecke für ein Blogger-Konto registrieren. Für Blogger werden Google-Konten verwendet. Wenn Sie also bereits ein Google-Konto haben, können Sie sofort loslegen.
Bibliothek erwerben
Bevor Ihr Client die Clientbibliothek verwenden kann, muss er den Clientbibliothekscode vom Server anfordern.
Verwenden Sie zuerst ein <script>
-Tag im Bereich <head>
Ihres HTML-Dokuments, um den Google AJAX API-Lademechanismus abzurufen:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
Wenn Sie die Clientbibliothek der Google Data API nach dem Abrufen des Loaders abrufen möchten, verwenden Sie die folgende Zeile in Ihrem JavaScript-Einrichtungscode. Sie muss aus dem Bereich <head>
Ihres HTML-Dokuments (oder aus einer JavaScript-Datei, die mit einem <script>
-Tag im Bereich <head>
Ihres HTML-Dokuments eingebunden ist) aufgerufen werden:
google.load("gdata", "1.x");
Der zweite Parameter für google.load()
ist die angeforderte Versionsnummer der JavaScript-Clientbibliothek. Unser Versionsnummerierungsschema orientiert sich an dem der Google Maps API. Hier sind die möglichen Versionsnummern und ihre Bedeutung:
"1"
- Die vorletzte Überarbeitung der Hauptversion 1.
"1.x"
- Die neueste Version der Hauptversion 1.
"1.s"
- Die neueste 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 bestimmten Haupt- und Nebenversionsnummer.
Nachdem du google.load()
aufgerufen hast, musst du dem Loader mitteilen, dass er warten soll, bis die Seite vollständig geladen ist, und dann deinen 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 dem <body>
-Element einen onload
-Handler zuzuweisen.
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 aber nur lesbar. Wenn du Blogs ändern möchtest, muss sich dein Client authentifizieren, bevor er private Feeds anfordert.
Die JavaScript-Clientbibliothek verwendet das AuthSub-Authentifizierungssystem. Weitere Informationen zur Authentifizierung mit Google Data APIs finden Sie in der Dokumentation zur Authentifizierung.
AuthSub-Proxy-Authentifizierung
Die AuthSub-Proxy-Authentifizierung wird von Webanwendungen verwendet, die ihre Nutzer in Google-Konten authentifizieren müssen. Der Website-Betreiber 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 er im Namen eines bestimmten Nutzers handeln kann.
Hier ist eine kurze Übersicht darüber, was während der Authentifizierung für einen webbasierten JavaScript-Client passiert:
- 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. Für Blogger ist der Bereich"http://www.blogger.com/feeds/"
. - Die Clientbibliothek sendet den Browser an die Seite „Zugriffsanfrage“ von Google, auf der der Nutzer seine Anmeldedaten eingeben kann, um sich beim Dienst anzumelden.
- Wenn sich der Nutzer erfolgreich anmeldet, sendet das AuthSub-System den Browser zurück zur URL des Webclients und gibt dabei das Authentifizierungstoken weiter.
- Die JavaScript-Clientbibliothek speichert das Token in einem Cookie und gibt die Kontrolle an die Funktion der Clientanwendung zurück, die
google.accounts.user.login()
aufgerufen hat. - Wenn die Clientanwendung anschließend Clientbibliotheksmethoden aufruft, die mit Blogger interagieren, hängt die Clientbibliothek das Token automatisch an alle Anfragen an.
Hinweis: Damit die JavaScript-Clientbibliothek authentifizierte Blogger-Anfragen in einem Webbrowser stellen kann, muss Ihre Seite ein Bild enthalten, das in derselben Domain wie Ihre Seite gehostet wird. Es kann sich um ein beliebiges Bild handeln, auch um ein transparentes Bild mit nur einem Pixel. Es muss jedoch ein Bild auf der Seite vorhanden sein. Wenn das Bild nicht auf der Seite erscheinen soll, können Sie das style
-Attribut des <img>
-Tags verwenden, um das Bild außerhalb des Renderingbereichs zu platzieren. Beispiele: style="position:absolute; top:
-1000px;"
Hier ist der Code der Clientanwendung, der die Anmeldung verarbeitet. Wir rufen die Funktion setupMyService()
später aus anderem Code auf.
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 Ihnen dringend, eine Anmeldeschaltfläche oder einen anderen Mechanismus für die Nutzereingabe bereitzustellen, über den Nutzer aufgefordert werden, den Anmeldevorgang manuell zu starten. Wenn Sie google.accounts.user.login()
stattdessen direkt nach dem Laden aufrufen, ohne auf eine Nutzerinteraktion zu warten, sieht der Nutzer beim Aufrufen Ihrer Seite zuerst eine Google-Anmeldeseite. Wenn sich der Nutzer nicht anmeldet, leitet Google ihn nicht zurück zu Ihrer Seite. Aus Sicht des Nutzers hat er also versucht, Ihre Seite aufzurufen, wurde aber weggeschickt und nicht zurückgeleitet. 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 möglichst einfach zu halten. Wir empfehlen diesen Ansatz jedoch nicht für reale Clientanwendungen.
Sie müssen nichts mit der Variablen namens token
tun. Die Clientbibliothek überwacht das Token und Sie müssen nichts weiter tun.
Hinweis: Wenn du ein neues BloggerService-Objekt erstellst, ruft die Clientbibliothek eine Methode namens google.gdata.client.init()
auf, die prüft, ob der Browser, in dem der Client ausgeführt wird, unterstützt wird. Bei einem Fehler zeigt die Clientbibliothek dem Nutzer eine Fehlermeldung an. Wenn Sie diese Art von Fehler selbst behandeln möchten, können Sie google.gdata.client.init(handleInitError)
explizit aufrufen, bevor Sie den Dienst erstellen. Dabei ist handleInitError()
Ihre Funktion. Wenn ein Initialisierungsfehler auftritt, erhält Ihre Funktion ein Standard-Fehlerobjekt. Sie können mit diesem Objekt tun, was Sie möchten.
Das Token bleibt gültig, bis Sie es widerrufen, indem Sie google.accounts.user.logout()
aufrufen:
function logMeOut() { google.accounts.user.logout(); }
Wenn du logout()
nicht aufrufst, bleibt das Cookie, in dem das Token gespeichert ist, zwei Jahre lang bestehen, es sei denn, der Nutzer löscht es. Das Cookie bleibt über Browsersitzungen hinweg erhalten. Der Nutzer kann also seinen Browser schließen, wieder öffnen und zu Ihrem Kunden zurückkehren, ohne sich noch einmal anmelden zu müssen.
Unter bestimmten ungewöhnlichen Umständen kann ein Token jedoch während einer Sitzung ungültig werden. Wenn Blogger ein Token ablehnt, sollte dein Client den Fehler behandeln, indem er logout()
aufruft, um das Cookie mit dem aktuellen Token zu entfernen, und dann noch einmal login()
aufruft, um ein neues gültiges Token abzurufen.
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 Umfang hat.google.accounts.user.getInfo()
enthält detaillierte Informationen zum aktuellen Token, die für das Debugging verwendet werden können.
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.