Przewodnik dla programistów: JavaScript

Interfejs Blogger Data API umożliwia aplikacjom klienckim wyświetlanie i aktualizowanie treści Bloggera w postaci plików danych Google Data API.

Aplikacja kliencka może używać interfejsu API danych Bloggera do tworzenia nowego bloga posty, edytowanie i usuwanie istniejących postów na blogu oraz zapytania o pasujące posty na blogu określonych kryteriów.

Oprócz przedstawienia nieco informacji na temat możliwości Bloggera Data API, ten dokument zawiera przykłady podstawowych interakcji interfejsu Data API, które wykorzystują z biblioteki klienta JavaScript. Jeśli chcesz dowiedzieć się więcej o: bazowego protokołu używanego przez bibliotekę (przeczytaj sekcję Protokół) w tym przewodniku programisty.

Spis treści

Odbiorcy

Ten dokument jest przeznaczony dla programistów, którzy chcą pisać aplikacje klienckie JavaScript, które mogą wchodzić w interakcje z Bloggerem. Zapewnia on szereg przykładów do podstawowych interakcji z interfejsem Data API za pomocą biblioteki klienta JavaScript.

Informacje referencyjne interfejsu Blogger Data API znajdziesz w przewodniku po protokole. Ten dokument zakłada, że znasz ogólne koncepcje interfejsów API danych Google, protokołu oraz modelu danych i przepływu pracy wykorzystywanego przez klienta JavaScriptu Biblioteka. Zakładamy też, że umiesz programować w języku JavaScript.

Informacje o klasach i metodach udostępnianych przez biblioteka klienta, patrz interfejs API biblioteki klienta JavaScript odniesienie.

Dokument został opracowany w taki sposób, aby czytać go w określonej kolejności. opiera się na wcześniejszych przykładach.

Warunki korzystania z usługi

Korzystając z biblioteki klienta JavaScriptu, zgadzasz się przestrzegać Warunków korzystania z biblioteki klienta JavaScriptu Google.

Informacje o obsługiwanych środowiskach

Obecnie obsługujemy tylko aplikacje klienckie JavaScript, które działają w internecie w przeglądarce. Obecnie obsługiwane są przeglądarki Firefox w wersji 1.5 lub nowszej oraz Internet Explorer w wersji 6.0 lub nowszej.

Biblioteka klienta JavaScript obsługuje całą komunikację z tagiem usługi serwera. Jeśli jesteś doświadczonym programistą JS, możesz pomyśleć: „Ale co prawie tak samo zasady dotyczące origin?” Biblioteka klienta JavaScript umożliwia klientowi wysyłanie żądań do interfejsu Google Data API pochodzących z dowolnej domeny przy zachowaniu zgodności z model zabezpieczeń przeglądarki.

Pierwsze kroki

Zanim napiszesz aplikację kliencką JavaScript, musisz przeprowadzić konfigurację, aby pobrać bibliotekę.

Tworzenie konta w Bloggerze

Możesz zarejestrować się konta Bloggera. Blogger korzysta z kont Google, jeśli więc masz już konto Google, wszystko gotowe.

Szukanie biblioteki

Zanim klient będzie mógł korzystać z biblioteki klienta, musi zażądać kod biblioteki klienta z serwera.

Najpierw użyj tagu <script> w sekcji <head> dokumentu HTML, aby pobrać ładowarkę interfejsu API AJAX Google:

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

Aby pobrać bibliotekę klienta interfejsu Google Data API po pobraniu programu ładującego, użyj tego wiersza w kodzie konfiguracyjnym JavaScriptu, który musi być wywoływany z sekcji <head> dokumentu HTML (lub z pliku JavaScript, który jest uwzględniany za pomocą tagu <script> w sekcji <head> dokumentu HTML):

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

Drugi parametr google.load() jest żądaną wersją numeru biblioteki klienta JavaScript.Nasz schemat numerowania wersji jest modelowany na podstawie pliku używanego przez interfejs API Map Google. Oto możliwe i ich znaczenie:

"1"
Druga do ostatniej wersji głównej wersji 1.
"1.x"
Najnowsza wersja główna 1.
"1.s"
Najnowsza stabilna wersja główna 1. Od czasu do czasu będziemy deklarować jakąś wersję biblioteki klienta jako „stabilną”, na podstawie opinii deweloperów. Ta wersja może jednak nie zawierać najnowszych funkcji.
"1.0", "1.1" itp.
Konkretna wersja biblioteki o określonym numerze wersji głównej i drobnej.

Po wywołaniu funkcji google.load() musisz zlecić ładowarce, aby zaczekała, aż strona się załaduje, a potem wywołać kod:

google.setOnLoadCallback(getMyBlogFeed);

Gdzie getMyBlogFeed() jest funkcją, która zostanie określona później w tym dokumencie. Zastosuj tę metodę zamiast Do modułu obsługi <body> dołączony jest moduł obsługi onload .

Uwierzytelnianie w usłudze Blogger

Za pomocą interfejsu Blogger Data API możesz uzyskać dostęp do plików danych publicznych i prywatnych. Publiczne kanały nie wymagają uwierzytelniania, ale są tylko do odczytu. Jeśli Jeśli chcesz zmodyfikować blogi, Twój klient musi się uwierzytelnić przed wysłaniem żądania prywatnych kanałów.

Biblioteka klienta JavaScript korzysta z systemu uwierzytelniania AuthSub. Dla: więcej informacji o uwierzytelnianiu za pomocą interfejsów API danych Google znajdziesz w uwierzytelnianie dokumentacji.

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 uzyskuje specjalne tokeny AuthSub, które umożliwiają mu działanie w imieniu konkretnego użytkownika.

Oto krótkie omówienie tego, co dzieje się podczas uwierzytelniania internetowego klienta JavaScript:

  1. Aplikacja klienta wywołuje metodę google.accounts.user.login() udostępnioną przez bibliotekę klienta, przekazując jej wartość „scope”, która wskazuje, której usługi Google użyć. W przypadku Bloggera zakres to: "http://www.blogger.com/feeds/".
  2. Biblioteka klienta wysyła przeglądarkę na stronę „Prośba o dostęp” w Google, na której użytkownik może podać swoje dane logowania, aby zalogować się w usłudze.
  3. Jeśli użytkownik zaloguje się pomyślnie, system AuthSub prześle przeglądarkę z powrotem do adresu URL klienta internetowego, przekazując token uwierzytelniający.
  4. Biblioteka klienta JavaScript zapisuje token w pliku cookie i zwraca kontrolę do funkcji aplikacji klienta, która wywołała funkcję google.accounts.user.login().
  5. Gdy aplikacja kliencka wywołuje metody z biblioteki klienta, które interakcji z Bloggerem, biblioteka klienta automatycznie dołącza token do wszystkie żądania.

Uwaga: aby biblioteka klienta JavaScriptu mogła wysyłać uwierzytelnione żądania do Bloggera w przeglądarce, Twoja strona musi zawierać obraz hostowany w tej samej domenie co strona. Może to być dowolny obraz, nawet przezroczysty obraz o rozmarze 1 piksel, ale na stronie musi być obraz. Jeśli nie chcesz, aby obraz był widoczny na stronie, możesz użyć atrybutu style tagu <img>, aby umieścić go poza obszarem renderowania. Przykład: style="position:absolute; top: -1000px;"

Oto kod aplikacji klienckiej, który obsługuje logowanie. Funkcję setupMyService() wywołamy później 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 atrybutu przycisk logowania lub inny mechanizm wprowadzania danych użytkownika, który prosi o rozpoczęcie logowania. ręcznie. Jeśli zamiast tego zadzwonisz google.accounts.user.login() od razu po wczytaniu, bez oczekiwanie na interakcję użytkownika, to pierwsza rzecz, którą widzi użytkownik po dotarciu na stronę, jest stroną logowania Google. Jeśli użytkownik zdecyduje się nie logować, Google nie przekieruje go z powrotem na Twoją stronę. Z punktu widzenia użytkownika oznacza to, że próbował on otworzyć Twoją stronę, ale został odpięty i nigdy nie został przekierowany z powrotem. Taki scenariusz może być dla użytkowników mylący i frustrujący. W przykładowym kodzie tego dokumentu zadzwonimy do użytkownika google.accounts.user.login() zaraz po wczytywania, by przykład był prosty. Nie zalecamy jednak stosowania tego rozwiązania rzeczywistych aplikacji klienckich.

Pamiętaj, że nie musisz nic robić z tą zmienną o nazwie token. Biblioteka klienta śledzi token, więc nie musisz tego robić.

Uwaga: gdy tworzysz nowy obiekt BloggerService, biblioteka klienta wywołuje metodę google.gdata.client.init(), która sprawdza, czy przeglądarka, w której działa klient, jest obsługiwana. Jeśli wystąpi błąd, biblioteka klienta wyświetli komunikat o błędzie. Jeśli chcesz naprawić tego typu błędy możesz samodzielnie zadzwonić, google.gdata.client.init(handleInitError). usługa, gdzie handleInitError() to Twoja funkcja. Jeśli wystąpi błąd init, funkcja otrzyma standardowy obiekt Error. Możesz z nim zrobić wszystko, co chcesz.

Token pozostanie ważny, dopóki go nie unieważnisz przez wywołanie google.accounts.user.logout():

function logMeOut() {
  google.accounts.user.logout();
}

Jeśli nie wywołasz funkcji logout(), plik cookie przechowujący token będzie działać przez 2 lata, chyba że użytkownik go usunie. Plik cookie jest zachowywany. między sesjami przeglądarki – użytkownik może zamknąć przeglądarkę i uruchomić ją ponownie a potem wróci do klienta. Nadal będzie zalogowany.

Istnieją jednak pewne nietypowe okoliczności, w których token może stać się nieprawidłowe podczas sesji. Jeśli Blogger odrzuci token, Twój klient powinien obsłużyć błąd, wywołując funkcję logout(), aby usunąć plik cookie zawierający bieżący token, a następnie wywołać funkcję login(), aby uzyskać nowy, prawidłowy token.

Istnieją 2 inne metody AuthSub, które mogą okazać się przydatne w różnych kontekstach:

  • google.accounts.user.checkLogin(scope) informuje, czy nie przeglądarka ma obecnie token uwierzytelniania dla danego zakresu.
  • google.accounts.user.getInfo() zawiera szczegółowe informacje o bieżącym tokenie, które można wykorzystać do debugowania.

Szczegółowe informacje o korzystaniu z JavaScriptu do interakcji z AuthSub, w tym informacji o zarządzaniu tokenami oraz w witrynie checkLogin() i getInfo(), zobacz Korzystanie z „AuthSub” Uwierzytelnianie za pomocą biblioteki klienta JavaScript dokument.

Powrót do góry