2013-03-21 3 views
7

Ich erhalte einen 403-Verboten-Fehler beim Versuch, youtube-Analytics-API-Daten über ein CMS-Konto zu erhalten.Verwenden der YouTube Analytics-API mit einem CMS-Konto

Nur zur Bestätigung, ist ein CMS-Konto die gleiche wie ein Dienstkonto?

Ich kann Analytics-Daten für Kanäle erhalten, die dem oauth2-Benutzer gehören, aber ich bekomme den 403 auf anderen Kanälen, auf die ich über meinen CMS-Account zugreifen kann, bin aber nicht der Eigentümer des Inhalts. (Ich habe Administrator-Account-Ebene auf dem CMS-Konto und die Kanäle, die ich bekomme 403 Fehler bei haben "Managed" -Beziehung)

Frage: Gibt es Pläne, Youtube.Analytics API-Unterstützung für die Abfrage von Kanälen unter einem CMS-Konto verwaltet zu haben?

Es scheint, dass, da ich dieses Konto verwenden kann, um alle Analysedaten für diese Kanäle mithilfe der CMS-Benutzeroberfläche zu erhalten, die ich in der Lage sein sollte, dasselbe mit der API zu tun.

Antwort

10

Ein YouTube Content Management System-Konto ist nicht dasselbe wie ein Service Account. Sie werden mit den YouTube-APIs nicht weit kommen, wenn Sie sich als Dienstkonto authentifizieren, da dieses Dienstkonto keinen Zugriff auf tatsächliche YouTube-Kanäle hat. Die Authentifizierung als CMS-Konto gibt Ihnen jedoch, was Sie wollen.

Eine Menge davon wurde erst kürzlich in Produktion genommen. Lassen Sie mich hier die vollständigen Schritte erläutern, wie Leute mit YouTube-CMS-Zugriff YouTube Analytics API-Berichte gegen die von ihnen verwalteten Kanäle und Videos ausführen können.

(Optional) Während über OAuth 2 als das Konto CMS ermächtigt, sowohl die https://www.googleapis.com/auth/youtube.readonly und https://www.googleapis.com/auth/youtubepartner Bereiche verwenden, einen YouTube Data API v3 channels.list() Aufruf mit folgenden Parametern vornehmen: part=snippet,contentDetails, managedByMe=true, maxResults=50, onBehalfOfContentOwner=CONTENT_OWNER_ID. CONTENT_OWNER_ID ist der einzige Wert, den Sie hier fest codieren müssen. Er sollte auf den "Partnercode" für Ihr YouTube CMS-Konto festgelegt werden. Dadurch erhalten Sie eine Liste mit bis zu 50 Kanälen, die Ihr CMS-Konto verwaltet. (Wenn Sie mehr als 50 benötigen, müssen Sie die Ergebnisse durchblättern.) Die ID jedes Kanals wird in channel.id und anderen nützlichen Informationen (wie der ID der Upload-Liste, wenn Sie die Liste der Videos abrufen möchten) zurückgegeben in diesem Kanal) wird ebenfalls zurückgegeben.

Wenn Sie bereits die Kanal-ID UC... für den Kanal kennen, für den Sie Berichte erstellen möchten, können Sie diesen Schritt überspringen und direkt zum Analytics-Bericht wechseln.

Um einen Kanal-Level-Bericht auf einem verwalteten Kanal laufen, während als das Konto CMS autorisiert, eine YouTube Analytics API request mit den folgenden Parametern vornehmen: ids=contentOwner==CONTENT_OWNER_ID, filters=channel==UC... und dann mit anderen Berichten Parameter Sie möchten.

Um einen Video-Level-Bericht zu erstellen, setzen Sie ids=contentOwner==CONTENT_OWNER_ID und filters=video==VIDEO_ID, wobei die ID eines Videos in einem Kanal ist, den das CMS-Konto verwaltet.

Es gibt weitere Details zu Inhaltseigentümerberichten in the docs.

+0

Jeff, vielen Dank für die Klärung der CMS vs Service Account Frage und alle Details für die Abfrage der Analytics API als CMS-Account. Das wird mir sehr helfen. – kk64738

+0

Jeff, habe gerade eine Folgefrage hier gepostet: (http://Stackoverflow.com/q/15822889/2194129) Sehr zu schätzen, wenn Sie irgendwelche Gedanken haben? – kk64738