0

Ich möchte die Liste aller Kanäle und ihre Statistiken von der Youtube API abrufen.Wie bekomme ich die Liste des Kanals von youtube api?

Was ich getan habe ist:

  1. Registrierte Konsolenanwendung
  2. Gebrauchte Oauth Client-ID
  3. https://developers.google.com/youtube/v3/docs/channels/list mit dieser api ich alle Statistiken bin immer

Dies ist, was ich bin tun, um die Liste des Kanals zu erhalten

function requestUserUploadsPlaylistId() { 
    // See https://developers.google.com/youtube/v3/docs/channels/list 
    var request = gapi.client.youtube.channels.list({ 
    mine: true, 
    part: 'statistics' 
    }); 
    request.execute(function(response) { 
    playlistId = response.result.items[0].contentDetails.relatedPlaylists.uploads; 
    requestVideoPlaylist(playlistId); 
    }); 
} 

Aber das Problem ist, dass diese Rückkehr die Information nur eines Kanals ist. Ich habe 20 Kanäle unter meinem Konto. Also brauche ich sie alle, um sie in meinem Tisch anzuzeigen.

Ich habe auch versucht, forUsername hinzuzufügen: 'Benutzername' Parameter, aber kein Erfolg.

Auch, wenn ich versuchte, managedByMe zu setzen: true seine Rückkehr Fehler als

Global:"required", 
Message:"Required" 

keine Möglichkeit bekommen können alle Kanalliste angezeigt werden soll. Kannst du mir das bitte erklären? Diese

ist, was ich will

Channelname ViewsCount 
1    50 
2    51 

und so weiter .....

meinen Code ignorieren response.result.items[0] ich ganze Antwort in Konsole bin Überprüfung. und Elemente enthalten jeweils nur einen Kanal.

Edit: enter image description here

Antwort

1

Update 1:

Wenn Sie die managedByMe Flag (auf true) verwenden, müssen Sie dieses Flag den gewünschten Parameter onBehalfOfContentOwner schaffen, die eine Zeichenfolge von Der Content Owner Identifier, den Sie kennen müssen.

Um die richtige Content-Owner-ID zu erhalten, müssen Sie ein neues Access-Token anfordern und bei der Anmeldung den richtigen Benutzer auswählen, der der Content-Owner-ID entspricht, die Sie verwenden möchten.

Blick in this question scheint es, was Sie tun müssen, ist als CMS-Benutzerkonto anmelden, und dann werden Sie, dass die Benutzer-ID als Content-Eigentümer-ID verwenden, sollten die Dinge funktionieren danach, wie Sie benötigen


Erste Antwort:

Sie sind nur items[0] in Ihrem Code den Zugriff auf die nur ein Element zeigen, versuchen Sie den Code Ändern einer foreach Schleife zu verwenden und iterieren alle Kanäle wie folgt aus:

function requestUserUploadsPlaylistId() { 
    // See https://developers.google.com/youtube/v3/docs/channels/list 
    var request = gapi.client.youtube.channels.list({ 
    mine: true, 
    part: 'statistics' 
    }); 
    request.execute(function(response) { 
    response.result.items.forEach(function(anItem) { 
     playlistId = anItem.contentDetails.relatedPlaylists.uploads; 
     requestVideoPlaylist(playlistId); 
    }); 
    }); 
} 

In Bezug auf die anderen Fehler, können Sie nicht vom Benutzer managedByMe und mine zugleich, wenn Sie Benutzer möchten managedByMe Sie löschen müssen mine und haben die richtigen Berechtigungen, würde ich mit dem api explorer ersten empfehlen zu spielen, um zu bestätigen Alles funktioniert, dann implementieren Sie den Code, der das widerspiegelt, es gibt mehr beschreibende Fehler.

+0

Hey, danke für die Antwort. Erstens, ich überprüfe Antwort enthält nur Array-Länge 0, die ich nicht will. Außerdem entferne ich meinen und benutze dann die anderen Parameter. Irgendwelche anderen Gedanken? " –

+0

Was meinst du mit" Ich überprüfe Antwort enthält nur Array-Länge 0, die ich nicht will "? Wenn Array-Länge 0 ist, dann werden Sie keine Ergebnisse sehen, in Ihrem Fall sehen Sie einen Ergebnis, was bedeutet, dass das Array nicht 0 sein kann Wenn Sie meinen Code ausführen, was erhalten Sie? –

+0

Ich meine, Elemente enthält Länge 1 was auch immer ich als Parameter verwenden. Items [0] bedeutet, dass ich auf das erste Element zugreifen Das Array. –

Verwandte Themen