Przykładowe fragmenty kodu JavaScript

Przykładowy kod poniżej korzysta z biblioteki klienta interfejsów API Google dla JavaScript. Możesz pobrać ten fragment z folderu javascript repozytorium kodu interfejsu API YouTube na GitHubie.

Kod wymaga uprawnień użytkownika do uzyskania dostępu do zakresu https://www.googleapis.com/auth/yt-analytics.readonly.

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

Możliwe, że Twoja aplikacja będzie też musiała prosić o dostęp 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. Omówienie autoryzacji zawiera zakresy używane zwykle w aplikacjach, które wywołują interfejs YouTube Analytics API.

Pobieranie dziennych statystyk kanału

Ten przykład wywołuje interfejs API YouTube Analytics, który pobiera dzienne wyświetlenia i inne dane służące do autoryzacji kanału użytkownika w roku kalendarzowym 2017. W przykładzie użyto biblioteki klienta JavaScript Google API.

Skonfiguruj dane logowania

Zanim po raz pierwszy uruchomisz tę próbkę lokalnie, musisz skonfigurować dane logowania do autoryzacji swojego projektu:

  1. Utwórz lub wybierz projekt w Konsoli interfejsów API Google.
  2. włączyć YouTube Analytics API w swoim projekcie.
  3. U góry strony Dane logowania wybierz kartę Ekran zgody OAuth. Wybierz adres e-mail, wpisz nazwę produktu (jeśli nie jest jeszcze skonfigurowana) 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. Kliknij przycisk Utwórz, aby zakończyć tworzenie danych logowania.
  8. Przed zamknięciem okna dialogowego skopiuj identyfikator klienta, którego musisz użyć w przykładowym kodzie.

Utwórz lokalną kopię próbki

Następnie zapisz przykładowy plik w pliku lokalnym. W tym przykładzie znajdź następujący wiersz i zastąp YOUR_CLIENT_ID identyfikatorem klienta uzyskanym podczas konfigurowania danych logowania.

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

Uruchom kod

Teraz możesz przetestować fragment:

  1. Otwórz plik lokalny w przeglądarce, a następnie konsolę debugowania w przeglądarce. Powinna wyświetlić się strona z 2 przyciskami.
  2. Kliknij przycisk Autoryzuj i wczytaj, aby uruchomić procedurę autoryzacji użytkownika. Jeśli zezwolisz aplikacji na pobieranie danych kanału, w konsoli powinny wyświetlić się następujące wiersze:
    Sign-in successful
    GAPI client loaded for API
  3. Jeśli zamiast wierszy powyżej zobaczysz komunikat o błędzie, sprawdź, czy wczytywany jest skrypt z autoryzowanego identyfikatora URI przekierowania skonfigurowanego dla projektu i czy został w nim umieszczony identyfikator klienta w sposób opisany powyżej.
  4. Kliknij przycisk execute, aby wywołać interfejs API. W przeglądarce powinien wyświetlić się obiekt response w konsoli. 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>