Häufig gestellte Fragen

    Übersicht

  1. Was ist eine Google Data API?
  2. Ich habe eine Funktionsanfrage oder einen Fehlerbericht. Wo sollte ich posten?
  3. Wo kann ich Fragen zu einer bestimmten API stellen?
  4. Was ist JSON?
  5. Muss ich XML verwenden? Sind andere Datenformate verfügbar?
  6. Warum verwenden Sie REST?
  7. Haben Sie Tipps oder kurzen Beispielcode für häufige Probleme?
  8. Gibt es eine Data API für Gmail?
  9. Authentifizierung

  10. Wie lautet der Dienstname in ClientLogin für die einzelnen Data APIs?
  11. Muss ich die API-Server informieren, wenn sich ein Nutzer von einer Anwendung abmeldet?
  12. Hat ein ClientLogin-Authentifizierungstoken ein Ablaufdatum?
  13. Ich habe eine allgemeine Frage zu Google-Konten. Wo soll ich hin?
  14. Wie authentifiziere ich mich bei einer API?
  15. Welchen Wert sollte ich für den AuthSub-/OAuth 1-Bereichsparameter verwenden?
  16. Gibt es verschiedene Arten von AuthSub-Tokens? Laufen die Tokens ab?
  17. Was ist der Hauptunterschied zwischen ClientLogin und AuthSub/OAuth 1?
  18. Kann ich die ClientLogin-Authentifizierung in Webanwendungen von Drittanbietern verwenden?
  19. Was ist ein CAPTCHA?
  20. Wie generiere ich eine CAPTCHA-Aufgabe?
  21. Sollte ich ClientLogin in meiner Webanwendung verwenden?
  22. Wie finde ich den Nutzernamen des Nutzers heraus, wenn ich AuthSub/OAuth 1 verwende?
  23. Wie verwende ich OAuth 1 mit den Google Data API-Clientbibliotheken?
  24. Wie verwende ich AuthSub mit den Google Data API-Clientbibliotheken?
  25. Wie verwende ich ClientLogin mit den Google Data API-Clientbibliotheken?
  26. Clientbibliotheken

  27. Für welche Programmiersprachen gibt es von Google unterstützte Clientbibliotheken?
  28. Wie melde ich einen Fehler oder eine Funktionsanfrage für eine der Google Data-Clientbibliotheken?
  29. Wie aktiviere ich Debugging-Optionen in den Clientbibliotheken?
  30. Wo finde ich Referenzdokumente für die Klassen der Clientbibliothek?
  31. Fehlerbehebung

  32. Welche Tools eignen sich gut für das HTTP-Debugging?
  33. Wie erhalte ich HTTP-Protokollierungsinformationen in der Java-Clientbibliothek?
  34. Wie erhalte ich HTTP-Logging-Informationen in der .NET-Clientbibliothek?
  35. Wie kann ich die gzip-Codierung für Google-Datenfeeds aktivieren?
  36. Warum wird beim Verwenden des PHP-Clients der Fehler „Unable to Connect to sslv2“ angezeigt?
  37. Wie erhalte ich das Atom-Dienstdokument, in dem ein Feed beschrieben wird?

Übersicht

Was ist eine Google Data API?

Eine Google Data API basiert auf dem Google Data Protocol. Das Google Data-Protokoll basiert auf den Syndikationsformaten Atom 1.0 und RSS 2.0 sowie dem Atom Publishing Protocol (APP).

Das Google Data-Protokoll erweitert diese Standards auf verschiedene Arten und nutzt dabei die in die Standards integrierten Erweiterungsmechanismen. Feeds entsprechen entweder dem Atom- oder dem RSS-Syndikationsformat. Das Veröffentlichungsmodell entspricht dem Atom Publishing Protocol.

Das Protokoll bietet auch ein allgemeines Modell für Feeds, Abfragen und Ergebnisse. Sie können damit Abfragen und Aktualisierungen an eine beliebige Data API senden.

Ich habe eine Funktionsanfrage oder einen Fehlerbericht. Wo sollte ich posten?
Sehen Sie sich unseren Issue Tracker an. Suchen Sie nach Ihrer Funktionsanfrage und markieren Sie sie, um Ihre Unterstützung auszudrücken und Updates zum Status zu erhalten.
Wo kann ich eine Frage zu einer bestimmten API stellen?
Wenn Ihr Problem hier nicht aufgeführt ist oder Sie weitere Informationen benötigen, gibt es für jede Google Data API bestimmte Diskussionsgruppen:
Was ist JSON?

JSON steht für JavaScript Object Notation.

JSON ist ein einfaches Datenaustauschformat, das aufgrund seiner Einfachheit bei Webentwicklern weit verbreitet ist. Es ist leicht zu lesen und zu schreiben, kann mit jeder Programmiersprache geparst werden und seine Strukturen lassen sich direkt auf Datenstrukturen abbilden, die in den meisten Programmiersprachen verwendet werden.

Weitere Informationen zur Verwendung von JSON mit den Google Data APIs

Muss ich XML verwenden? Sind andere Datenformate verfügbar?
 Das Standarddatenformat für die Google Data APIs ist XML in Form eines Atom-Feeds. Beim Anfordern eines Feeds können Sie jedoch mit dem Abfrageparameter alt ein alternatives Format angeben.
  • alt=rss
    Die Antwortdaten sind als RSS-Feed formatiert.
  • alt=json oder alt=json-in-script
    : Gibt eine JSON-Darstellung der XML-Struktur des Atom-Feeds zurück. Ein weiterer Vorteil von JSON ist, dass es im JavaScript-Clientcode einfacher zu parsen ist. Derzeit ist die Verwendung von JSON nur als schreibgeschützte Option verfügbar. Wenn Sie die JavaScript-Clientbibliothek mit den Diensten Blogger, Kontakte oder Kalender verwenden, können Sie jedoch sowohl Daten lesen als auch schreiben.

    Weitere Informationen zum Anfordern und Verwenden von JSON-Feeds

  • alt=atom-in-script
    Ähnlich wie alt=json-in-script, aber die Ergebnisse werden als Atom-XML-String anstelle von JSON zurückgegeben.
  • alt=rss-in-script
    Ähnlich wie alt=atom-in-script, aber die Ergebnisse werden als RSS-XML-String anstelle von Atom zurückgegeben.

Weitere Informationen zu den alternativen Formaten finden Sie im Google Data Reference Guide.

Warum verwenden Sie REST?
REST ist einfach, schlank und skalierbar und eignet sich sehr gut für die Darstellung und Bereitstellung von Daten.
Haben Sie Tipps oder kurzen Beispielcode für häufige Probleme?
Im Google Data API Tips Blog finden Sie Hilfe zu unseren Clientbibliotheken und zum Erstellen von Rohdatenanfragen.
Gibt es eine Data API für Gmail?

Nein, aber Sie können den Atom-Feed von Gmail mit AuthSub oder OAuth 1 verwenden, um schreibgeschützten Zugriff auf die ungelesenen Nachrichten eines Nutzers anzufordern. Der Gültigkeitsbereich sollte auf https://mail.google.com/mail/feed/atom/ festgelegt sein. Eine Beispielabfrage wäre:

GET https://mail.google.com/mail/feed/atom/

Wenn Sie Ihre E‑Mails verwalten möchten, unterstützt Gmail auch IMAP/POP.


Authentifizierung

In der Dokumentation zu Google Data APIs bezieht sich „OAuth“ auf OAuth 1. Weitere Informationen zu OAuth 2.0 finden Sie in der Dokumentation zur jeweiligen API.

Wie lautet der Dienstname in ClientLogin für die einzelnen Data APIs?
Ein „Dienstname“ ist ein kurzer String, der vom ClientLogin-Authentifizierungssystem zur Identifizierung eines Google-Dienstes verwendet wird.
Google API Dienstname
Google Analytics Data APIs analytics
G Suite-APIs
(Domain Information & Management)
apps
Google Sites Data API jotspot
Blogger Data API blogger
Book Search Data API print
Calendar Data API cl
Google Code Search Data API codesearch
Contacts Data API cp
Content API for Shopping structuredcontent
Documents List Data API writely
Finance Data API finance
Gmail-Atom-Feed mail
Health Data API health
weaver (H9-Sandbox)
Maps Data APIs local
Picasa Web Albums Data API lh2
Sidewiki Data API annotateweb
Spreadsheets Data API wise
Webmaster Tools API sitemaps
YouTube Data API youtube

Weitere Informationen zu den anderen Parametern, die in einer ClientLogin-Anfrage verwendet werden, finden Sie in der ClientLogin-Dokumentation.

Muss ich die API-Server informieren, wenn sich ein Nutzer von einer Anwendung abmeldet?
Nein, es ist nicht erforderlich, die Google Data API zu informieren, wenn sich ein Nutzer von einer Anwendung abmeldet. Wenn Ihre Anwendung jedoch ein ausgegebenes AuthSub-Token nicht mehr benötigt, sollte sie das Token widerrufen.
Hat ein ClientLogin-Authentifizierungstoken ein Ablaufdatum?
Ein ClientLogin-Token kann ab dem Ausstellungsdatum bis zu zwei Wochen gültig sein. Dieses Limit ist jedoch dienstspezifisch und kann kürzer sein.
Ich habe eine allgemeine Frage zu Google-Konten. Wo soll ich hin?
Google-Konto-Hilfe aufrufen
Wie authentifiziere ich mich bei einer API?
 Ihre HTTP-Anfrage muss einen Autorisierungs-Header mit einem Token enthalten, das mit ClientLogin, AuthSub oder OAuth 1 abgerufen wurde.
Welchen Wert sollte ich für den AuthSub-/OAuth 1-Bereichsparameter verwenden?
Ein scope-Parameter ist für AuthSub und OAuth 1 erforderlich, um anzugeben, auf welche Google-Dienste Ihre Anwendung Zugriff hat. Weitere Informationen zu OAuth 2.0 finden Sie in der Dokumentation für Ihre spezifische API.

Google API ClientLogin-Dienstname
Google Analytics Data API https://www.google.com/analytics/feeds/
Google Sites Data API http(s)://sites.google.com/feeds/
Blogger Data API http://www.blogger.com/feeds/
Book Search Data API http://www.google.com/books/feeds/
Calendar Data API http(s)://www.google.com/calendar/feeds/
Contacts Data API http(s)://www.google.com/m8/feeds/
Content API for Shopping https://www.googleapis.com/auth/structuredcontent
Documents List Data API http(s)://docs.google.com/feeds/
Finance Data API http://finance.google.com/finance/feeds/
Gmail-Atom-Feed https://mail.google.com/mail/feed/atom/
Health Data API https://www.google.com/health/feeds/
https://www.google.com/h9/feeds/ (H9-Sandbox)
Google Maps Data-API http://maps.google.com/maps/feeds/
Picasa Web Albums Data API http://picasaweb.google.com/data/
Portable Contacts API http://www-opensocial.googleusercontent.com/api/people
Sidewiki Data API http://www.google.com/sidewiki/feeds/
Spreadsheets Data API http(s)://spreadsheets.google.com/feeds/
Webmaster Tools API http://www.google.com/webmasters/tools/feeds/
YouTube Data API http://gdata.youtube.com
Gibt es verschiedene Arten von AuthSub-Tokens? Laufen die Tokens ab?
Es gibt zwei Arten von AuthSub-Tokens. Das erste ist ein Einmal-Token, das Ihrer Webanwendung über den Abfrageparameter „token“ präsentiert wird. Dieses Token läuft ab, wenn es zum ersten Mal mit dem Dienst verwendet wird, für den es ausgestellt wurde, oder wenn es gegen ein Sitzungstoken eingetauscht wird.

Sitzungstokens laufen nicht ab, sofern sie nicht explizit vom Nutzer oder über den AuthSubRevokeToken-API-Aufruf widerrufen werden. Ein Einmal-Token kann nur dann gegen ein Sitzungstoken eingetauscht werden, wenn in der ursprünglichen AuthSubRequest-URL session=1 als Suchparameter angegeben wurde.
Was ist der Hauptunterschied zwischen ClientLogin und AuthSub/OAuth 1?

AuthSub ist für Webanwendungen konzipiert. So werden Nutzeranmeldedaten sicher direkt vom Webbrowser eines Nutzers an die Server von Google gesendet und nicht über eine Drittanbieterwebsite.

ClientLogin ist für installierte Desktopanwendungen vorgesehen. Dazu muss die anfragende Anwendung Nutzeranmeldedaten im Namen des Nutzers an Google übertragen.

Weitere Informationen finden Sie in der Dokumentation zur Google Account Authentication API.

Kann ich die ClientLogin-Authentifizierung in Webanwendungen von Drittanbietern verwenden?
 Die Verwendung von ClientLogin in Webanwendungen von Drittanbietern ist zulässig, wird aber dringend abgeraten. Als Best Practice sollte die Webanwendung Nutzer niemals nach ihren Anmeldedaten fragen, da diese abgefangen werden könnten. Stattdessen sollte eine Anwendung Nutzeranmeldedaten serverseitig speichern und ein einzelnes „Dienstkonto“ haben, das immer zur Authentifizierung bei Google verwendet wird.
Was ist ein CAPTCHA?
Ein CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) ist ein Challenge-Response-Test, mit dem ermittelt wird, ob der Nutzer ein Mensch ist. Der Begriff ist von der Carnegie Mellon University markenrechtlich geschützt. Weitere Informationen Wir haben CAPTCHA in ClientLogin implementiert.
Wie generiere ich eine CAPTCHA-Abfrage?
Ein proprietärer Algorithmus bestimmt, wann während der Authentifizierung eine CAPTCHA-Herausforderung erforderlich ist. Wiederholte Authentifizierungsversuche mit falschen Anmeldedaten führen oft zu einer CAPTCHA-Aufforderung.
Soll ich ClientLogin in meiner Webanwendung verwenden?
Nein. ClientLogin sollte von installierten Anwendungen auf nutzereigener Hardware verwendet werden. Die Verwendung der ClientLogin API in Webanwendungen ist unsicher und wird dringend abgeraten.
Wie finde ich den Nutzernamen des Nutzers heraus, wenn ich AuthSub/OAuth 1 verwende?
Da Sie von Google nur ein Token erhalten, mit dem Sie auf die Feeds des Nutzers zugreifen können, wissen Sie möglicherweise nicht, wie der Nutzername lautet. Das kann ein Problem darstellen, wenn die Feed-URL, die Sie verwenden möchten, den Nutzernamen enthält. In diesem Fall können Sie den speziellen Nutzernamen default verwenden, um „der Nutzer, dessen Authentifizierungstoken ich verwende“ anzugeben.
Wie verwende ich OAuth 1.0 mit den Google Data API-Clientbibliotheken?
Weitere Informationen finden Sie im Artikel OAuth 1 mit den Google Data API-Clientbibliotheken verwenden.
Wie verwende ich AuthSub mit den Google Data API-Clientbibliotheken?
Weitere Informationen finden Sie im Artikel AuthSub mit den Google Data API-Clientbibliotheken verwenden.
Wie verwende ich ClientLogin mit den Google Data API-Clientbibliotheken?
Weitere Informationen finden Sie im Artikel ClientLogin mit den Google Data API-Clientbibliotheken verwenden.

Clientbibliotheken

Für welche Programmiersprachen gibt es von Google unterstützte Clientbibliotheken?

Die Clientbibliotheken für Java, .NET, Python und Objective-C werden offiziell von Google unterstützt. Außerdem hat unser Partner Zend eine PHP-Clientbibliothek geschrieben. Mit diesen Bibliotheken können Sie Anfragen im Google Data-Protokoll erstellen, an einen Dienst senden und Serverantworten verarbeiten. Es gibt auch eine JavaScript-Clientbibliothek, die derzeit nur Blogger, Google Kalender und Google Kontakte unterstützt.

Wenn Sie eine Clientbibliothek in einer anderen Sprache als Java, .NET, Python oder Objective-C schreiben und sie mit der Data API-Entwickler-Community teilen möchten, posten Sie in der Google Data APIs-Diskussionsgruppe. Wir freuen uns auf Ihr Feedback.

Wie melde ich einen Fehler oder stelle eine Feature-Anfrage für eine der Clientbibliotheken?

Fehler oder Funktionsanfragen für die Clientbibliotheken können an den folgenden Stellen gemeldet werden:

Nachdem Sie den Fehler gemeldet haben, erstellen Sie einen Thread im Entwicklerforum für die entsprechende API.

Wie aktiviere ich Debugging-Optionen in den Google Data API-Clientbibliotheken?
Informationen zum Aktivieren des Debuggings mit einigen der Clientbibliotheken finden Sie im folgenden Artikel: Debugging Google Data API Clients: Exploring Traffic from Within your Program
Wo finde ich Referenzdokumente für die Clientbibliotheksklassen?
Clientbibliothek Referenzleitfaden
Java Javadoc
JavaScript JSdoc
.NET NDoc
PHP phpDoc
Python PyDoc

Fehlerbehebung

Welche Tools eignen sich gut für das HTTP-Debugging?

Unten finden Sie eine Reihe von Tools. Möglicherweise möchten Sie auch den Artikel On the Wire: Network Capture Tools for API Developers lesen, in dem Beispiele für WireShark und Fiddler ausführlich beschrieben werden.

Wireshark
Wireshark ist ein Tool zur Analyse von Netzwerkprotokollen. Damit können Sie den Netzwerkverkehr erfassen und den Inhalt analysieren. Das ist sehr hilfreich beim Debuggen des Traffics in Bibliotheken, in denen Sie keinen direkten Zugriff auf die HTTP-Anfrage- und Antwortstreams haben. Der Traffic zwischen Ihrer Anwendung und den Authentifizierungsdiensten kann nicht mit Wireshark analysiert werden, da die Kommunikation mit SSL verschlüsselt ist. Wireshark kann auch verwendet werden, um Traffic zu analysieren, der mit Tools wie tcpdump erfasst wurde. Wireshark ist von den Entwicklern sowohl als Quellcode als auch als Windows-Installer verfügbar. Drittanbieterpakete sind für viele Plattformen verfügbar.
Fiddler
Fiddler ist ein „HTTP-Debugging-Proxy“. Wenn Sie Ihren Code oder Ihre Laufzeitumgebung so konfigurieren können, dass ein Proxyserver für HTTP-Traffic verwendet wird, wird Fiddler zwischen Ihrer Anwendung und den Google-Datendiensten platziert, sodass Sie den Traffic untersuchen können. Fiddler 2 bietet Unterstützung für SSL. Fiddler ist derzeit nur für Windows verfügbar.
cURL
cURL ist ein Befehlszeilentool, mit dem HTTP-/HTTPS-Anfragen ausgeführt werden können. Es ist sehr nützlich für schnelle Tests von Interaktionen mit einem Dienst, ohne dass Sie zuerst HTTP-Unterstützung in Ihren Client einbauen müssen.
Wie erhalte ich HTTP-Protokollierungsinformationen in der Java-Clientbibliothek?

Die Java-Clientbibliotheken verwenden das Paket java.util.logging, um das Logging von HTTP-Anfragen zu ermöglichen. So können Sie die Protokollierung von Headern für Anfragen und Antworten sowie von Statuscodes und Anfrage-URLs aktivieren. Derzeit werden nicht die vollständigen Anfrage- und Antwortstreams protokolliert. Der für diese Logs verwendete Logger-Name ist com.google.gdata.client.http.HttpGDataRequest.

Wenn von den Servern ein Fehlercode zurückgegeben wird, wird eine Ausnahme ausgelöst. Die Ausnahmeklassen werden von com.google.gdata.util.ServiceException abgeleitet und enthalten eine öffentliche Methode namens getResponseBody(). Weitere Informationen finden Sie in der Javadoc-Dokumentation.

Wie erhalte ich HTTP-Protokollierungsinformationen in der .NET-Clientbibliothek?
Die .NET-Bibliothek verwendet die System.Diagnostics-Tracing-Methoden, um den Ausführungspfad zu protokollieren, wenn das Tracing aktiviert ist. Im Fehlerfall wird außerdem eine GDataRequestException ausgegeben. Die Ausnahme enthält ein ResponseString, über das Sie auf den Text der HTTP-Antwort zugreifen können.
Wie kann ich die GZIP-Codierung für Google-Datenfeeds aktivieren?

Wenn Sie eine mit gzip codierte Antwort von einer der Google Data APIs erhalten möchten, müssen Sie zwei Dinge tun: Legen Sie einen „Accept-Encoding“-Header fest und ändern Sie Ihren User-Agent so, dass er den String „gzip“ enthält. Beispiel für korrekt formatierte Header:

User-Agent: my program (gzip)
Accept-Encoding: gzip
Warum wird beim Verwenden des PHP-Clients der Fehler „Unable to Connect to sslv2“ angezeigt?

Ab Juli 2009 haben wir SSLv2 auf unseren Servern deaktiviert, um die Sicherheit zu erhöhen. Leider gibt es in frühen Versionen der PHP-Clientbibliothek, die vor Juli 2007 veröffentlicht wurden (Version 1.0.0 und früher), einen Fehler, der erzwingt, dass Verbindungen SSLv2 verwenden. Wenn Sie eine Verbindung zu einem Server herstellen, auf dem SSLv2 deaktiviert ist, wird der folgende Fehler angezeigt:

PHP Fatal error:  Uncaught exception 'Zend_Http_Client_Adapter_Exception' with message 'Unable to Connect to sslv2://www.google.com:443.'

Um diesen Fehler zu beheben, aktualisieren Sie auf eine neuere Version der PHP-Clientbibliothek, die unter http://framework.zend.com/download verfügbar ist.

Wenn Sie kein Upgrade auf eine neuere Version durchführen können, können Sie das Problem beheben, indem Sie Ihrer Anwendung den folgenden Code hinzufügen, wobei $gdata Ihre vorhandene Instanz von Zend_Gdata (oder einer entsprechenden Unterklasse) ist:

$gdata->getHttpClient()->setConfig(array('ssltransport' => 'ssl'));
Wie erhalte ich das Atom-Dienstdokument, das einen Feed beschreibt?

Sie können das Atom-Dienstdokument abrufen, indem Sie den Parameter alt=atom-service in der Anfrage übergeben. Hinweis:Nur Version 2 der Google Data APIs gibt ein Dienstdokument zurück, das der Syntax des AtomPub-Dienstdokuments entspricht. In Version 1 der Google Data APIs wird weiterhin ein Dienstdokument zurückgegeben, das jedoch auf einer früheren AtomPub-Entwurfsspezifikation basiert. Zwischen den beiden Versionen gibt es Syntax- und Namespace-Änderungen.