Przykłady kodu JavaScript

W przykładzie kodu poniżej użyto biblioteki klienta interfejsów API Google dla języka JavaScript. Ten przykład możesz pobrać z folderu javascript w repozytorium z przykładowym kodem interfejsów API YouTube na GitHubie.

Kod prosi użytkownika o zgodę na dostęp do zakresu https://www.googleapis.com/auth/yt-analytics.readonly.

return gapi.auth2.getAuthInstance()     .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})     ...

Aplikacja może też wymagać dostępu do innych zakresów. Na przykład aplikacja, która wywołuje interfejsy YouTube Analytics API i YouTube Data API, może wymagać od użytkowników przyznania dostępu do ich kont YouTube. W omówieniu autoryzacji znajdziesz zakresy zwykle używane w aplikacjach, które wywołują interfejs API Statystyk YouTube.

Pobieranie dziennych statystyk kanału

Ten przykład wywołuje interfejs YouTube Analytics API, aby pobrać dzienne wyświetlenia i inne dane dotyczące kanału autoryzowanego użytkownika w roku kalendarzowym 2017. W przykładzie używana jest biblioteka klienta JavaScript interfejsów API Google.

Konfigurowanie danych uwierzytelniających

Zanim po raz pierwszy uruchomisz ten przykład lokalnie, musisz skonfigurować dane logowania do autoryzacji w projekcie:

  1. Utwórz projekt w Konsoli interfejsów API Google lub wybierz istniejący projekt.
  2. Włącz w projekcie interfejs YouTube Analytics API.
  3. U góry strony Dane logowania wybierz kartę Ekran zgody OAuth. Wybierz adres e-mail, wpisz nazwę produktu (jeśli nie jest jeszcze ustawiona) i kliknij przycisk Zapisz.
  4. Na stronie Dane logowania kliknij przycisk Utwórz dane logowania i wybierz Identyfikator klienta OAuth.
  5. Wybierz typ aplikacji Aplikacja internetowa.
  6. W polu Autoryzowane źródła JavaScript wpisz adres URL, z którego będziesz udostępniać przykładowy kod. Możesz na przykład użyć http://localhost:8000 lub http://yourserver.example.com. Pole Autoryzowane identyfikatory URI przekierowania możesz pozostawić puste.
  7. Aby zakończyć tworzenie danych logowania, kliknij przycisk Utwórz.
  8. Zanim zamkniesz okno, skopiuj identyfikator klienta, który musisz umieścić w przykładowym kodzie.

Utwórz lokalną kopię próbki

Następnie zapisz próbkę w pliku lokalnym. W przykładzie znajdź ten wiersz i zastąp YOUR_CLIENT_ID identyfikatorem klienta uzyskanym podczas konfigurowania danych logowania do autoryzacji.

gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});

Uruchom kod

Teraz możesz przetestować próbkę:

  1. Otwórz plik lokalny w przeglądarce i otwórz w niej konsolę debugowania. Powinna wyświetlić się strona z 2 przyciskami.
  2. Kliknij przycisk authorize and load (autoryzuj i wczytaj), aby uruchomić proces autoryzacji użytkownika. Jeśli autoryzujesz aplikację do pobierania danych o kanale, w konsoli w przeglądarce powinny się wyświetlić te wiersze:
     Sign-in successful GAPI client loaded for API
  3. Jeśli zamiast powyższych wierszy widzisz komunikat o błędzie, sprawdź, czy skrypt jest wczytywany z autoryzowanego identyfikatora URI przekierowania skonfigurowanego w projekcie oraz czy w kodzie znajduje się identyfikator klienta zgodnie z opisem powyżej.
  4. Aby wywołać interfejs API, kliknij przycisk execute (wykonaj). W konsoli w przeglądarce powinien pojawić się obiekt response. W tym obiekcie właściwość result jest mapowana na obiekt zawierający dane interfejsu API.

Przykładowy kod

<script src="https://apis.google.com/js/api.js"></script> <script>   function authenticate() {     return gapi.auth2.getAuthInstance()         .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})         .then(function() { console.log("Sign-in successful"); },               function(err) { console.error("Error signing in", err); });   }   function loadClient() {     return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2")         .then(function() { console.log("GAPI client loaded for API"); },               function(err) { console.error("Error loading GAPI client for API", err); });   }   // Make sure the client is loaded and sign-in is complete before calling this method.   function execute() {     return gapi.client.youtubeAnalytics.reports.query({       "ids": "channel==MINE",       "startDate": "2017-01-01",       "endDate": "2017-12-31",       "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained",       "dimensions": "day",       "sort": "day"     })         .then(function(response) {                 // Handle the results here (response.result has the parsed body).                 console.log("Response", response);               },               function(err) { console.error("Execute error", err); });   }   gapi.load("client:auth2", function() {     gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});   }); </script> <button onclick="authenticate().then(loadClient)">authorize and load</button> <button onclick="execute()">execute</button>