Najczęstsze pytania

    Omówienie

  1. Co to jest interfejs Google Data API?
  2. Mam prośbę o dodanie funkcji lub zgłoszenie błędu. Gdzie publikować posty?
  3. Gdzie należy zadawać pytania dotyczące konkretnego interfejsu API?
  4. Co to jest JSON?
  5. Czy muszę używać plików XML? Czy są dostępne inne formaty danych?
  6. Dlaczego korzystasz z REST?
  7. Czy masz jakieś wskazówki lub krótki przykładowy kod, które pomogą Ci rozwiązać typowe problemy?
  8. Czy Gmail ma interfejs Data API?
  9. Uwierzytelnianie

  10. Jaka jest nazwa usługi w ClientClient dla każdego interfejsu Data API?
  11. Czy użytkownik musi wylogować się z aplikacji z interfejsu API?
  12. Czy token uwierzytelniania ClientLogin ma datę ważności?
  13. Mam ogólne pytanie na temat kont Google. Co mam zrobić?
  14. Jak uwierzytelniać się w interfejsie API?
  15. Jaką wartość mam zastosować jako parametr zakresu AuthSub/OAuth 1?
  16. Czy istnieją różne typy tokenów AuthSub? Czy tokeny tracą ważność?
  17. Jaka jest główna różnica między ClientLogin a AuthSub/OAuth 1?
  18. Czy mogę używać uwierzytelniania ClientLogin w aplikacjach internetowych innych firm?
  19. Co to jest CAPTCHA?
  20. Jak wygenerować test CAPTCHA?
  21. Czy mam używać ClientLogin w mojej aplikacji internetowej?
  22. Jak sprawdzić nazwę użytkownika w przypadku korzystania z AuthSub/OAuth 1?
  23. Jak używać protokołu OAuth 1 z bibliotekami klienta interfejsu Google Data API?
  24. Jak używać AuthSub z bibliotekami klienta Google Data API?
  25. Jak korzystać z ClientLogin z bibliotekami klienta Google Data API?
  26. Biblioteki klienta

  27. W jakich językach programowania Google obsługuje biblioteki klienta?
  28. Jak zgłosić błąd lub prośbę o dodanie funkcji jednej z bibliotek klienta Google Data?
  29. Jak włączyć opcje debugowania w bibliotekach klienta?
  30. Gdzie znajdę dokumenty referencyjne do zajęć w bibliotece klienta?
  31. Rozwiązywanie problemów

  32. Jakie są dobre narzędzia do debugowania stron HTTP?
  33. Jak uzyskać informacje o logach HTTP z biblioteki klienta w języku Java?
  34. Jak uzyskać informacje o logach HTTP z biblioteki klienta .NET?
  35. Jak włączyć kodowanie gzip z plików danych Google?
  36. Dlaczego podczas korzystania z klienta PHP widzę błąd „Nie można połączyć się z protokołem sslv2”?
  37. Jak uzyskać dokument usługi Atom opisujący kanał?

Omówienie

Co to jest interfejs Google Data API?

Interfejs Google Data API to interfejs oparty na protokole Google Data. Protokół danych Google jest oparty na formatach dystrybucji Atom 1.0 i RSS 2.0 oraz protokole Atom.

Protokół Google Data rozszerza te standardy na różne sposoby, korzystając z wbudowanych w nich mechanizmów rozszerzeń. Kanały są zgodne z formatami dystrybucji Atom lub RSS. Model publikowania jest zgodny z protokołem Atom Publishing.

Protokół oferuje też ogólny model kanałów, zapytań i wyników. Możesz go używać do wysyłania zapytań i aktualizacji do dowolnego interfejsu Data API.

Chcę poprosić o dodanie funkcji lub zgłosić błąd. Gdzie należy to opublikować?
Użyj naszego narzędzia do śledzenia problemów. Odszukaj prośbę o dodanie funkcji i oznacz ją gwiazdką, aby dodać wsparcie i otrzymywać informacje o jej stanie.
Gdzie zadaję pytanie dotyczące konkretnego interfejsu API?
Jeśli Twojego problemu nie ma na liście lub chcesz dowiedzieć się więcej, znajdziesz osobne grupy dyskusyjne dla każdego interfejsu Google Data API:
Co to jest JSON?

JSON odnosi się do notacji obiektu JavaScript.

JSON to prosty format wymiany danych, który jest łatwy w użyciu i popularny wśród programistów internetowych. Można je łatwo czytać i pisać. Można je analizować za pomocą dowolnego języka programowania, a ich struktury mapują bezpośrednio na struktury danych używane w większości języków programowania.

Dowiedz się więcej o używaniu JSON w interfejsach Google Data API.

Czy muszę używać plików XML? Czy są dostępne inne formaty danych?
Domyślny format danych dla interfejsów API danych Google to XML w postaci kanału Atom. W żądaniu pliku danych możesz jednak określić alternatywny format, używając parametru zapytania alt.
  • alt=rss
    Dane odpowiedzi są sformatowane jako kanał RSS.
  • alt=json lub alt=json-in-script
    zwraca JSON w formacie XML pliku danych Atom. Dodatkową zaletą formatu JSON jest to, że ułatwia on „analizę” kodu klienta JavaScript. Obecnie format JSON jest dostępny tylko do odczytu. Jednak korzystanie z biblioteki klienta JavaScript w usługach Blogger, Kontakty i Kalendarz pozwala na odczyt i zapis danych.

    Dowiedz się więcej o wysyłaniu prośby o pliki danych JSON i korzystaniu z nich.

  • alt=atom-in-script
    Podobne do alt=json-in-script, ale wyniki są zwracane w postaci ciągu XML Atom zamiast JSON.
  • alt=rss-in-script
    Podobne do alt=atom-in-script, ale wyniki są zwracane jako ciąg znaków XML RSS, a nie Atom.

Więcej informacji o formatach alternatywnych znajdziesz w Przewodniku po danych Google.

Dlaczego korzystasz z REST?
REST jest proste, lekkie i skalowalne, dobrze mapuje się i udostępnia dane.
Czy masz jakieś wskazówki lub krótki przykładowy kod, które pomogą Ci rozwiązać typowe problemy?
Przejrzyj bloga o interfejsie Google Data API, aby uzyskać pomoc dotyczącą naszych bibliotek klientów oraz przesyłania nieprzetworzonych żądań.
Czy Gmail ma interfejs Data API?

Nie, ale za pomocą kanału Atom w Gmailu za pomocą AuthSub lub OAuth 1 możesz prosić o dostęp tylko do odczytu do nieprzeczytanych wiadomości użytkownika. Zakres powinien być ustawiony na https://mail.google.com/mail/feed/atom/. Przykładowe zapytanie:

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

Jeśli chcesz zarządzać pocztą, Gmail obsługuje też IMAP/POP.


Uwierzytelnianie

W dokumentacji interfejsów API danych Google określenie „OAuth” odnosi się do protokołu OAuth 1. Szczegółowe informacje dotyczące protokołu OAuth 2.0 znajdziesz w dokumentacji poszczególnych interfejsów API.

Jaka jest nazwa usługi w ClientLogin dla każdego interfejsu Data API?
„Nazwa usługi” to krótki ciąg znaków, którego system uwierzytelniania ClientLogin używa do identyfikowania usługi Google.
Interfejs API Google Nazwa usługi
Interfejsy API danych Google Analytics analytics
Interfejsy API G Suite
(Informacje o domenie i zarządzanie)
apps
Interfejs API danych Witryn Google jotspot
Interfejs API danych Bloggera blogger
Interfejs API danych Book Search print
Interfejs API danych Kalendarza cl
Interfejs API danych Google Search Search codesearch
Interfejs API kontaktów cp
Content API for Shopping structuredcontent
Interfejs API danych listy dokumentów writely
Interfejs API danych Finance finance
Kanał Atom w Gmailu mail
Health Data API, health
weaver (piaskownica H9)
Interfejsy API danych danych Map local
Interfejs API danych usługi Picasa Web Albums lh2
Interfejs API danych GCLID annotateweb
Interfejs API danych arkuszy kalkulacyjnych wise
Interfejs API Narzędzi dla webmasterów sitemaps
YouTube Data API youtube

Więcej informacji o innych parametrach używanych w żądaniu ClientLogin znajdziesz w dokumentacji ClientLogin.

Czy użytkownik, który wyloguje się z aplikacji, musi poinformować serwery API?
Nie, nie musisz informować Google Data API o wylogowaniu się użytkownika. Jeśli jednak aplikacja nie musi już używać wydanego tokena AuthSub, powinna ona unieważnić token.
Czy token uwierzytelniania ClientLogin ma datę ważności?
Token ClientLogin może być ważny przez 2 tygodnie od daty wystawienia, ale ten limit jest związany z usługą i może być krótszy.
Mam ogólne pytanie na temat kont Google. Co mam zrobić?
Odwiedź Centrum pomocy kont Google.
Jak uwierzytelnić się w interfejsie API?
Żądanie HTTP musi zawierać nagłówek autoryzacji zawierający token uzyskany przy użyciu parametru ClientLogin, AuthSub lub OAuth 1.
Jaką wartość parametru parametru AuthSub/Oauth 1 należy stosować?
Uwierzytelnianie AuthSub i OAuth 1 wymaga parametru scope do określenia, do których usług Google będzie miała dostęp Twoja aplikacja. Szczegóły protokołu OAuth 2.0 znajdziesz w dokumentacji konkretnego interfejsu API.

Interfejs API Google Nazwa usługi ClientLogin
Google Analytics Data API https://www.google.com/analytics/feeds/
Interfejs API danych Witryn Google http(s)://sites.google.com/feeds/
Interfejs API danych Bloggera http://www.blogger.com/feeds/
Interfejs API danych Book Search http://www.google.com/books/feeds/
Interfejs API danych Kalendarza http(s)://www.google.com/calendar/feeds/
Interfejs API kontaktów http(s)://www.google.com/m8/feeds/
Content API for Shopping https://www.googleapis.com/auth/structuredcontent
Interfejs API danych listy dokumentów http(s)://docs.google.com/feeds/
Interfejs API danych Finance http://finance.google.com/finance/feeds/
Kanał Atom w Gmailu https://mail.google.com/mail/feed/atom/
Health Data API, https://www.google.com/health/feeds/
https://www.google.com/h9/feeds/ (piaskownica H9)
Interfejs API danych Map Google http://maps.google.com/maps/feeds/
Interfejs API danych usługi Picasa Web Albums http://picasaweb.google.com/data/
Interfejs przenośny kontaktów http://www-opensocial.googleusercontent.com/api/people
Interfejs API danych GCLID http://www.google.com/sidewiki/feeds/
Interfejs API danych arkuszy kalkulacyjnych http(s)://spreadsheets.google.com/feeds/
Interfejs API Narzędzi dla webmasterów http://www.google.com/webmasters/tools/feeds/
YouTube Data API http://gdata.youtube.com
Czy są różne typy tokenów AuthSub? Czy tokeny tracą ważność?
Dostępne są 2 typy tokenów AuthSub. Pierwszy to token jednorazowy wyświetlany Twojej aplikacji internetowej za pomocą parametru zapytania „token”. Ten token wygaśnie po pierwszym użyciu go w usłudze, dla której został wystawiony, lub podczas wymiany na token sesji.

Tokeny sesji nie wygasają, chyba że token zostanie unieważniony przez użytkownika lub wywołanie interfejsu API AuthSubRevokeToken. Tokenu jednorazowego można używać w przypadku tokena sesji tylko wtedy, gdy pierwotny URL AuthSubRequest został określony jako parametr zapytania session=1.
Jaka jest główna różnica między ClientLogin a AuthSub/OAuth 1?

Protokół AuthSub jest przeznaczony do aplikacji internetowych. Zapewnia to bezpieczne przesyłanie danych logowania użytkownika bezpośrednio z przeglądarki na serwery Google zamiast do witryny innej firmy.

ClientLogin dotyczy zainstalowanych aplikacji komputerowych. Wymaga ona, aby aplikacja żądała danych logowania użytkownika do Google w imieniu użytkownika.

Zobacz dokumentację dotyczącą interfejsu API uwierzytelniania konta Google.

Czy mogę używać uwierzytelniania ClientLogin w aplikacjach internetowych innych firm?
Korzystanie z ClientClient w aplikacjach internetowych innych firm jest dopuszczalne, ale zdecydowanie odradzamy. Zgodnie ze sprawdzoną metodą aplikacja internetowa nie powinna prosić użytkowników o podanie danych logowania (które mogą być narażone na podglądanie). Zamiast tego aplikacja powinna przechowywać dane logowania użytkownika po stronie serwera i mieć jedno „konto usługi”, które jest zawsze używane do uwierzytelniania w Google.
Co to jest CAPTCHA?
CAPTCHA (całkowicie zautomatyzowany test publiczny do odróżnienia komputerów i ludzi) to rodzaj testów reakcji użytkowników, który określa, czy użytkownik jest człowiekiem. Termin jest zastrzeżony przez Uniwersytet Carnegie Mellon. Więcej informacji znajdziesz w Wikipedii. Zaimplementowaliśmy CAPTCHA w ClientClient.
Jak wygenerować test CAPTCHA?
Zastosowany algorytm służy do określania, kiedy podczas uwierzytelniania wymagane jest zadanie CAPTCHA. Powtarzające się próby uwierzytelniania za pomocą nieprawidłowych danych logowania często generują test CAPTCHA.
Czy należy używać ClientLogin w mojej aplikacji internetowej?
Nie. ClientLogin powinien być używany przez zainstalowane aplikacje na sprzęcie należącym do użytkownika. Korzystanie z interfejsu API ClientLogin w aplikacjach internetowych nie jest bezpieczne i zdecydowanie odradzamy.
Jak sprawdzić nazwę użytkownika w przypadku korzystania z AuthSub/OAuth 1?
Ponieważ token od Google zapewnia dostęp tylko do kanałów użytkownika, możesz nie znać jego nazwy. Może to powodować problem, jeśli adres URL kanału, którego chcesz użyć, zawiera nazwę użytkownika. W tym przypadku możesz użyć specjalnej nazwy użytkownika default, aby wskazać użytkownika, którego tokena uwierzytelniania używam.
Jak używać protokołu OAuth 1 z bibliotekami klienta interfejsu Google Data API?
Przeczytaj artykuł o używaniu OAuth 1 z bibliotekami klienta interfejsu Google Data API.
Jak używać AuthSub z bibliotekami klienta Google Data API?
Przeczytaj artykuł Korzystanie z uwierzytelniania AuthSub w bibliotekach klienta interfejsu Google Data API.
Jak używać ClientLogin z bibliotekami klienta Google Data API?
Przeczytaj artykuł Korzystanie z klienta ClientLogin z bibliotekami klienta interfejsu Google Data API.

Biblioteki klienta

W jakich językach programowania Google obsługuje biblioteki klienta?

Biblioteki klienta Java, .NET, Python i Goal-C są oficjalnie obsługiwane przez Google. Poza tym nasz partner Zend napisał bibliotekę klienta PHP. Korzystając z tych bibliotek, możesz tworzyć żądania protokołu danych Google, wysyłać je do usługi i przetwarzać odpowiedzi serwera. Dostępna jest też biblioteka klienta JavaScript, która obecnie obsługuje tylko Blogger, Kalendarz i Kontakty Google.

Jeśli piszesz bibliotekę klienta w języku innym niż Java, .Net, Python lub Goal-C i chcesz udostępnić ją społeczności programistów interfejsu Data API, możesz to zrobić na grupie dyskusyjnej dotyczącej interfejsów API danych Google. Chętnie poznamy Twoją opinię.

Jak zgłosić błąd lub prośbę o dodanie funkcji w jednej z bibliotek klienta?

Błędy i prośby o dodanie funkcji dotyczące bibliotek klienta można zgłaszać w tych lokalizacjach:

Po opublikowaniu błędu utwórz wątek na forum dla deweloperów dla odpowiedniego interfejsu API.

Jak włączyć opcje debugowania w bibliotekach klienta interfejsu Google Data API?
Aby dowiedzieć się, jak włączyć debugowanie za pomocą niektórych bibliotek klienta, przeczytaj ten artykuł: Debugowanie klientów interfejsu Google Data API: analiza ruchu z Twojego programu
Gdzie znajdę dokumenty referencyjne do zajęć w bibliotece klienta?
Biblioteka klienta Przewodnik informacyjny
Java JavaScript
JavaScript JSdoc
.NET NDoc
PHP phpDoc
Python PyDoc

Rozwiązywanie problemów

Jakie są dobre narzędzia do debugowania stron HTTP?

Poniżej znajdziesz listę wielu narzędzi, ale możesz też przeczytać artykuł Przewodni: narzędzia do przechwytywania połączeń sieciowych dla programistów interfejsów API, w których szczegółowo opisujemy zarówno programy WireShark, jak i Fiddler.

Wireshark
Wireshark to „narzędzie do analizowania protokołów sieciowych”. Umożliwia przechwytywanie ruchu sieciowego i analizowanie treści. Jest to bardzo przydatne przy debugowaniu ruchu w bibliotekach, w którym nie masz bezpośredniego dostępu do strumieni żądań i odpowiedzi HTTP. Nie można analizować ruchu między aplikacją a usługami uwierzytelniania przy użyciu usługi Wireshark, ponieważ komunikacja jest szyfrowana przy użyciu protokołu SSL. Wireshark może być też używany do analizy ruchu przechwyconego za pomocą narzędzi takich jak tcpdump. Program Wireshark jest dostępny przez programistów zarówno jako kod źródłowy, jak i instalator w systemie Windows. Pakiety innych firm są dostępne na wielu platformach.
Fiddler
Fiddler to „serwer proxy debugowania HTTP”. Jeśli możesz skonfigurować kod lub środowisko wykonawcze do używania serwera proxy do obsługi ruchu HTTP, Fiddler będzie utrzymywać połączenie między aplikacją a usługami danych Google, w których będzie można sprawdzać ruch. Fiddler 2 obsługuje protokół SSL. Fiddler jest obecnie dostępny tylko w systemie Windows.
cURL
cURL to narzędzie wiersza poleceń, które może wykonywać żądania HTTP/HTTPS. Jest to bardzo przydatne do szybkiego testowania interakcji z usługą bez konieczności wcześniejszego tworzenia obsługi protokołu HTTP w kliencie.
Jak uzyskać informacje dotyczące logowania HTTP w bibliotece klienta w języku Java?

Biblioteki klienta w języku Java korzystają z pakietu java.util.logging, aby umożliwiać rejestrowanie żądań HTTP. To umożliwi włączenie rejestrowania nagłówków żądań i odpowiedzi, a także kodów stanu i adresów URL żądań. Nie rejestruje teraz pełnych strumieni żądań i odpowiedzi. Nazwa rejestratora używana w tych logach to com.google.gdata.client.http.HttpGDataRequest.

W przypadku zwrócenia kodu błędu z serwerów jest zwracany wyjątek. Klasy wyjątków dziedziczą atrybuty com.google.gdata.util.ServiceException i zawierają metodę publiczną o nazwie getResponseBody(). Więcej informacji znajdziesz w języku Javadoc.

Jak uzyskać informacje dotyczące logowania HTTP z biblioteki klienta .NET?
Biblioteka .NET korzysta z metod śledzenia System.Diagnostics, aby rejestrować ścieżkę wykonania, jeśli śledzenie jest włączone. W przypadku błędu zwracany jest GDataRequestException. Wyjątek zawiera element ResponseString, który pozwala uzyskać dostęp do treści odpowiedzi HTTP.
Jak włączyć kodowanie gzip z plików danych Google?

Aby odebrać odpowiedź zakodowaną w formacie gzip z jednego z interfejsów API danych Google, musisz zrobić 2 czynności: ustawić nagłówek „Accept-Encoding” i zmodyfikować klienta użytkownika, aby zawierał ciąg „gzip”. Przykład poprawnie sformułowanych nagłówków:

User-Agent: my program (gzip)
Accept-Encoding: gzip
Dlaczego podczas używania klienta PHP widzę błąd „Nie można połączyć się z protokołem sslv2”?

Aby poprawić bezpieczeństwo, w lipcu 2009 roku zaczęliśmy wyłączać protokół SSLv2 na naszych serwerach. We wczesnych wersjach biblioteki klienta PHP wprowadzonej przed lipcem 2007 roku (w wersji 1.0.0 i starszych) wystąpił błąd, który wymusza korzystanie z protokołu SSLv2. Podczas nawiązywania połączenia z serwerem, na którym wyłączono protokół SSLv2, występuje następujący błąd:

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

Aby naprawić ten błąd, przejdź na nowszą wersję biblioteki klienta w języku PHP, dostępną na http://framework.zend.com/download.

Jeśli nie możesz uaktualnić oprogramowania do nowszej wersji, możesz rozwiązać ten problem, dodając do aplikacji ten kod, w którym $gdata jest istniejącym wystąpieniem Zend_Gdata (lub odpowiednią podklasą):

$gdata->getHttpClient()->setConfig(array('ssltransport' => 'ssl'));
Jak pobrać dokument usługi Atom opisujący kanał?

Dokument usługi Atom możesz uzyskać, przekazując w żądaniu parametr alt=atom-service. Uwaga: tylko wersja 2 interfejsów Google Data API zwróci dokument usługi zgodny ze składnią dokumentu usługi AtomPub. Wersja 1 interfejsów API danych Google nadal będzie zwracać dokument usługi, ale jest on oparty na wcześniejszej specyfikacji roboczej AtomPub (w obu wersjach wprowadzono zmiany w składni i przestrzeni nazw).