leo*_*yin 4 python youtube-api youtube-data-api
我正在使用 Youtube Data API 对MCN 中的几个 CMS 帐户进行有针对性的查询(如本例)。我启用了正确的 API 并在 Google 的开发人员控制台上为已安装的应用程序设置了 oAuth。我确保调用正确的范围:
YOUTUBE_SCOPES = ["https://www.googleapis.com/auth/youtube.readonly",
"https://www.googleapis.com/auth/yt-analytics-monetary.readonly",
"https://www.googleapis.com/auth/youtubepartner"]
Run Code Online (Sandbox Code Playgroud)
身份验证没有任何疑虑...
(youtube, youtube_analytics) = get_authenticated_services(args)
Run Code Online (Sandbox Code Playgroud)
直到进行健全性检查以列出与 CMS 关联的频道:
youtube.channels().list(
part='snippet,contentDetails',
managedByMe=True,
maxResults=50,
onBehalfOfContentOwner=CONTENT_OWNER_ID
).execute()
Run Code Online (Sandbox Code Playgroud)
返回 403“禁止访问”错误。我想知道这是不是因为我的 CMS 帐户没有管理员权限?
两件事之一可能在这里起作用:
CONTENT_OWNER_ID您在youtube.channels().list()方法中提供的信息不正确。CONTENT_OWNER_ID,但使用错误的帐户进行身份验证。您可能只需要在您的方法中包含正确CONTENT_OWNER_ID的onBehalfOfContentOwner参数youtube.channels().list()(尽管为了隐私,您可能在帖子中将此留空)。
要仔细检查,您可以CONTENT_OWNER_ID通过此表单调用 API 来找到 的值。确保您的身份验证正确(即,使用可以访问您想要的 CMS 的帐户),您将收到一个 JSON 响应,如下所示:
{
"kind": "youtubePartner#contentOwnerList",
"items": [
{
"kind": "youtubePartner#contentOwner",
"id": CONTENT_OWNER_ID,
"displayName": DISPLAY_NAME
etc.
}
]
}
Run Code Online (Sandbox Code Playgroud)
只需CONTENT_OWNER_ID在您的channels().list()方法中包含您想要的来自此响应的任何内容(再次确保您已正确验证),瞧。
如果这不能解决您的问题,那么您可能提供了正确的 CONTENT_OWNER_ID,但是您正在使用错误的帐户进行身份验证。
在再次运行脚本之前,请仔细检查是否删除了包含临时访问令牌的文件(它的文件名类似于“YOUR_FILENAME-oauth2.json”)。然后,再次运行你的脚本;确保在提示选择身份验证帐户时,选择与CONTENT_OWNER_ID您设置的帐户相对应的帐户。
基本上,您进行身份验证的帐户与CONTENT_OWNER_ID您提供的帐户之间必须达成一致。
最后,您不需要API 密钥来以这种方式调用 API;您需要一个 API 密钥或一个经过适当身份验证的 OAuth 2.0 访问令牌。这是文档。
| 归档时间: |
|
| 查看次数: |
4185 次 |
| 最近记录: |