JavaScript-Codebeispiele

Im folgenden Codebeispiel wird die Google APIs-Clientbibliothek für JavaScript verwendet. Sie können dieses Beispiel aus dem Ordner javascript des YouTube APIs-Codebeispiel-Repositorys auf GitHub herunterladen.

Der Code fordert die Berechtigung des Nutzers an, auf den Bereich https://www.googleapis.com/auth/yt-analytics.readonly zuzugreifen.

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

Möglicherweise muss Ihre Anwendung auch Zugriff auf andere Bereiche anfordern. Beispielsweise muss eine Anwendung, die die YouTube Analytics API und die YouTube Data API aufruft, möglicherweise auch Zugriff auf die YouTube-Konten der Nutzer erhalten. In der Autorisierungsübersicht werden Bereiche aufgeführt, die in der Regel in Anwendungen verwendet werden, die die YouTube Analytics API aufrufen.

Tägliche Kanalstatistiken abrufen

In diesem Beispiel wird die YouTube Analytics API aufgerufen, um die täglichen Aufrufe und andere Messwerte für den Kanal des autorisierenden Nutzers für das Kalenderjahr 2017 abzurufen. In diesem Beispiel wird die Google APIs-Clientbibliothek für JavaScript verwendet.

Anmeldedaten für die Autorisierung einrichten

Bevor Sie dieses Beispiel zum ersten Mal lokal ausführen, müssen Sie Autorisierungsanmeldedaten für Ihr Projekt einrichten:

  1. Erstellen oder wählen Sie ein Projekt in der Google API Console aus.
  2. Aktivieren Sie die YouTube Analytics API für Ihr Projekt.
  3. Wählen Sie oben auf der Seite Anmeldedaten den Tab OAuth-Zustimmungsbildschirm aus. Wählen Sie eine E‑Mail-Adresse aus, geben Sie einen Produktnamen ein, falls noch nicht geschehen, und klicken Sie auf die Schaltfläche „Speichern“.
  4. Klicken Sie auf der Seite Anmeldedaten auf die Schaltfläche Anmeldedaten erstellen und wählen Sie OAuth-Client-ID aus.
  5. Wählen Sie den Anwendungstyp „Webanwendung“ aus.
  6. Geben Sie im Feld „Autorisierte JavaScript-Quellen“ die URL ein, über die Sie das Codebeispiel bereitstellen. Sie können beispielsweise http://localhost:8000 oder http://yourserver.example.com verwenden. Sie können das Feld „Autorisierte Weiterleitungs-URIs“ leer lassen.
  7. Klicken Sie auf die Schaltfläche Erstellen, um das Erstellen der Anmeldedaten abzuschließen.
  8. Kopieren Sie die Client-ID, bevor Sie das Dialogfeld schließen. Sie benötigen sie für das Codebeispiel.

Lokale Kopie des Beispiels erstellen

Speichern Sie das Beispiel dann in einer lokalen Datei. Suchen Sie im Beispiel die folgende Zeile und ersetzen Sie YOUR_CLIENT_ID durch die Client-ID, die Sie beim Einrichten Ihrer Anmeldedaten für die Autorisierung erhalten haben.

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

Code ausführen

Jetzt können Sie das Beispiel testen:

  1. Öffnen Sie die lokale Datei in einem Webbrowser und öffnen Sie die Debugging-Konsole im Browser. Es sollte eine Seite mit zwei Schaltflächen angezeigt werden.
  2. Klicken Sie auf die Schaltfläche Autorisieren und laden, um den Nutzerautorisierungsablauf zu starten. Wenn Sie der App die Berechtigung erteilen, Ihre Kanaldaten abzurufen, sollten im Browser die folgenden Zeilen in der Konsole angezeigt werden:
    Sign-in successful
    GAPI client loaded for API
  3. Wenn Sie anstelle der oben genannten Zeilen eine Fehlermeldung sehen, prüfen Sie, ob Sie das Skript über den autorisierten Weiterleitungs-URI laden, den Sie für Ihr Projekt eingerichtet haben, und ob Sie Ihre Client-ID wie oben beschrieben in den Code eingefügt haben.
  4. Klicken Sie auf die Schaltfläche Ausführen, um die API aufzurufen. Im Browser sollte ein response-Objekt in der Konsole ausgegeben werden. In diesem Objekt wird die Eigenschaft result einem Objekt zugeordnet, das die API-Daten enthält.

Beispielcode

<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>