Interfejs API danych Bloggera umożliwia aplikacjom klienckim wyświetlanie i aktualizowanie treści z Bloggera w postaci kanałów interfejsu API danych Google.
Aplikacja kliencka może używać interfejsu Blogger Data API do tworzenia nowych postów na blogu, edytowania i usuwania dotychczasowych postów oraz wysyłania zapytań dotyczących postów na blogu odpowiadających konkretnym kryteriom.
Znajdziesz w nim nie tylko informacje o możliwościach interfejsu API danych Bloggera, ale także przykłady podstawowych interakcji z interfejsem Data API za pomocą biblioteki klienta w języku JavaScript. Jeśli chcesz dowiedzieć się więcej o protokole opartym na bibliotece, zapoznaj się z sekcją dotyczącą protokołu w tym przewodniku.
Spis treści
Odbiorców
Ten dokument jest przeznaczony dla programistów, którzy chcą tworzyć aplikacje klienckie JavaScript, które mogą współpracować z Bloggerem. Znajdziesz w nim serię przykładów podstawowych interakcji z interfejsem Data API przy użyciu biblioteki klienta w języku JavaScript.
Informacje o interfejsie API danych Bloggera znajdziesz w przewodniku po protokołach. W tym dokumencie założono, że rozumiesz ogólne zagadnienia związane z protokołem interfejsów API danych Google oraz schematem i procesem kontroli danych używanym przez bibliotekę klienta JavaScript. Zakładamy też, że umiesz programować w języku JavaScript.
Więcej informacji o klasach i metodach dostępnych w bibliotece klienta znajdziesz w dokumentacji interfejsu API biblioteki klienta JavaScript.
Ten dokument powinien być uporządkowany, a każdy z nich zawiera wcześniejsze przykłady.
Warunki korzystania z usługi
Korzystając z biblioteki klienta JavaScript, zgadzasz się przestrzegać Warunków korzystania z biblioteki klienta JavaScript Google.
Obsługiwane środowiska
Aktualnie obsługujemy tylko aplikacje klienckie JavaScript, które działają na stronie internetowej w przeglądarce. Obsługiwane obecnie przeglądarki to Firefox 1.5 i nowsze wersje oraz Internet Explorer w wersji 6.0 i nowszych.
Biblioteka klienta JavaScript obsługuje całą komunikację z serwerem usługi. Jeśli jesteś doświadczonym deweloperem JS, możesz pomyśleć o zasadach dotyczących tego samego źródła Biblioteka klienta JavaScript umożliwia klientowi wysyłanie żądań do interfejsu API danych Google z dowolnej domeny i zachowanie zgodności z modelem zabezpieczeń przeglądarki.
Pierwsze kroki
Zanim napiszesz aplikację kliencką JavaScript, musisz wykonać pewne czynności, aby uzyskać dostęp do biblioteki.
Tworzenie konta w Bloggerze
Jeśli chcesz, możesz założyć konto w Bloggerze na potrzeby testów. Blogger korzysta z kont Google, więc jeśli masz już konto Google, masz wszystko gotowe.
Pozyskiwanie biblioteki
Zanim klient będzie mógł korzystać z biblioteki klienta, musi wysłać do serwera kod biblioteki klienta.
Zacznij od użycia tagu <script>
w sekcji <head>
dokumentu HTML, aby pobrać interfejs Google AJAX API:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
Aby pobrać bibliotekę klienta Google Data API po pobraniu programu, użyj w kodzie konfiguracji JavaScript następującego wiersza, który musi być wywołany z sekcji <head>
dokumentu HTML (lub z pliku JavaScript dołączonego za pomocą tagu <script>
w sekcji <head>
dokumentu HTML):
google.load("gdata", "1.x");
Drugi parametr do google.load()
to numer wersji żądanej biblioteki klienta JavaScript.Nasz schemat numerowania wersji jest oparty na modelu używanym przez interfejs API Map Google. Oto możliwe numery wersji i ich znaczenie:
"1"
- Od ostatniej wersji głównej wersji 1.
"1.x"
- Najnowsza wersja głównej wersji 1.
"1.s"
- Najnowsza stabilna wersja głównej wersji 1. Czasem na podstawie opinii deweloperów zgłaszamy, że określona wersja biblioteki klienta jest „stabilna”. Może ona nie zawierać najnowszych funkcji.
"1.0"
,"1.1
" itd.- Konkretna wersja biblioteki z określonym numerem wersji głównej i podrzędnej.
Po wywołaniu elementu google.load()
musisz zaczekać, aż strona zakończy się wczytaniem, a następnie wywołać kod:
google.setOnLoadCallback(getMyBlogFeed);
Gdzie getMyBlogFeed()
to funkcja, którą zdefiniujemy w dalszej sekcji tego dokumentu. Użyj tego podejścia, zamiast mieć moduł obsługi onload
dołączony do elementu <body>
.
Uwierzytelnianie w usłudze Blogger
Za pomocą interfejsu Blogger Data API masz dostęp do kanałów publicznych i prywatnych. Publiczne kanały nie wymagają uwierzytelniania, ale są tylko do odczytu. Jeśli chcesz zmodyfikować blogi, klient musi uwierzytelnić się przed wysłaniem żądania prywatnych kanałów.
Biblioteka klienta JavaScript korzysta z systemu uwierzytelniania AuthSub. Więcej ogólnych informacji o uwierzytelnianiu za pomocą interfejsów Google Data API znajdziesz w dokumentacji uwierzytelniania.
Uwierzytelnianie serwera proxy AuthSub
Uwierzytelnianie serwera proxy AuthSub jest używane przez aplikacje internetowe, które muszą uwierzytelniać użytkowników na kontach Google. Operator witryny i kod klienta nie mają dostępu do nazwy użytkownika ani hasła użytkownika Bloggera. Zamiast tego klient otrzymuje specjalne tokeny uwierzytelniania, które pozwalają klientowi działać w imieniu konkretnego użytkownika.
Oto krótkie omówienie tego, co się dzieje podczas uwierzytelniania klienta JavaScript w przeglądarce:
- Aplikacja kliencka wywołuje metodę
google.accounts.user.login()
udostępnioną przez bibliotekę klienta, przekazując wartość &"zakres" wskazującą, której usługi Google należy użyć. W przypadku Bloggera zakres to"http://www.blogger.com/feeds/"
. - Biblioteka klienta przenosi przeglądarkę na stronę Google „Żądanie dostępu”, na której użytkownik może wpisać swoje dane logowania, aby zalogować się w usłudze.
- Jeśli użytkownik się zaloguje, system AuthSub odeśle przeglądarkę z powrotem do adresu URL klienta internetowego, przekazując token uwierzytelniania.
- Biblioteka klienta JavaScript przechowuje token w pliku cookie i zwraca kontrolę nad funkcją aplikacji klienckiej
google.accounts.user.login()
. - Gdy aplikacja kliencka wywołuje metody biblioteki klienta, które współdziałają z Bloggerem, biblioteka klienta automatycznie dołącza token do wszystkich żądań.
Uwaga: aby biblioteka klienta JavaScript mogła wysyłać uwierzytelnione żądania z Bloggera w przeglądarce, strona musi zawierać obraz hostowany w tej samej domenie co Twoja strona. Może to być dowolny obraz, nawet przezroczysty obraz o szerokości 1 piksela, ale na stronie musi znajdować się obraz. Jeśli nie chcesz, aby obraz był widoczny na stronie, możesz użyć atrybutu style
tagu <img>
, by umieścić go poza obszarem renderowania. Na przykład: style="position:absolute; top:
-1000px;"
.
Oto kod aplikacji klienckiej, który obsługuje logowanie. Wywołujemy później funkcję setupMyService()
z innego kodu.
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;
}
Wskazówka: zdecydowanie zalecamy podanie przycisku logowania lub innego mechanizmu przesyłania danych, aby poprosić użytkownika o ręczne rozpoczęcie procesu logowania. Jeśli zamiast tego wywołasz element google.accounts.user.login()
natychmiast po jego wczytaniu, bez oczekiwania na interakcję z użytkownikiem, pierwszą rzeczą, jaką użytkownik zobaczy po otwarciu strony, będzie strona logowania Google. Jeśli użytkownik zdecyduje się nie logować, oznacza to, że nie kieruje go z powrotem na Twoją stronę. Z perspektywy tego użytkownika próbował on odwiedzić Twoją stronę, ale nie został odesłany. Może to być dla użytkowników mylące i frustrujące. W przykładowym kodzie w tym dokumencie wywołamy google.accounts.user.login()
natychmiast po wczytaniu, ale dla przykładu nie zalecamy tego podejścia.
Nie musisz nic robić w przypadku zmiennej o nazwie token
. Biblioteka klienta śledzi token, więc nie musisz tego robić.
Uwaga: gdy tworzysz nowy obiekt BloggerService, biblioteka klienta wywołuje metodę o nazwie google.gdata.client.init()
, która sprawdza, czy przeglądarka działa. Jeśli wystąpi błąd, w bibliotece klienta pojawi się komunikat o błędzie. Jeśli chcesz samodzielnie wprowadzić taki błąd, możesz najpierw wywołać funkcję google.gdata.client.init(handleInitError)
, zanim utworzysz usługę (gdzie handleInitError()
to Twoja funkcja). Jeśli wystąpi błąd inicjowania, funkcja otrzyma standardowy obiekt błędu. Możesz w nim wykonać dowolną czynność.
Token pozostanie ważny, dopóki go nie unieważnisz, wywołując metodę google.accounts.user.logout()
:
function logMeOut() { google.accounts.user.logout(); }
Jeśli nie wywołasz funkcji logout()
, plik cookie zawierający token będzie działał przez 2 lata, chyba że użytkownik go usunie. Plik cookie jest przechowywany pomiędzy sesjami przeglądarki, więc użytkownik może zamknąć przeglądarkę, a następnie otworzyć ją ponownie i wrócić do klienta, na który będzie zalogowany.
W pewnych okolicznościach token może jednak stać się nieprawidłowy podczas sesji. Jeśli Blogger odrzuci token, Twój klient powinien rozwiązać warunek błędu, wywołując logout()
w celu usunięcia pliku cookie zawierającego obecny token, a następnie ponownie wywołując login()
, aby uzyskać nowy, prawidłowy token.
Są też 2 inne metody AuthSub, które mogą Ci się przydać w różnych kontekstach:
google.accounts.user.checkLogin(scope)
informuje, czy przeglądarka ma obecnie token uwierzytelniania dla danego zakresu.google.accounts.user.getInfo()
zawiera szczegółowe informacje o bieżącym tokenie na potrzeby debugowania.
Szczegółowe informacje o używaniu JavaScriptu do interakcji z AuthSub, w tym informacje o zarządzaniu tokenami oraz w usługach checkLogin()
i getInfo()
, znajdziesz w dokumencie Korzystanie z uwierzytelniania &Subt;AuthSub" Authentication with Library Client Library.