我尝试拨打Youtube 频道 API,但响应没有 contentOwnerDetails 。有什么问题?
GET https://www.googleapis.com/youtube/v3/channels?part=id%2CcontentDetails%2CcontentOwnerDetails&mine=true&key={YOUR_API_KEY}
答案 0 :(得分:1)
看起来它需要onBehalfOfContentOwner
参数。我的要求是
GET https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentOwnerDetails&id=CHANNEL_ID&onBehalfOfContentOwner=NETWORK_ID
我能够得到
"contentOwnerDetails": {
"contentOwner": NETWORK_ID,
"timeLinked": "2015-07-23T15:21:25.000Z"
}
答案 1 :(得分:0)
对于 GET 方法URI
https://www.googleapis.com/youtube/v3/channels?part=id%2CcontentDetails%2CcontentOwnerDetails&mine=true&key={YOUR_API_KEY}
JSON响应如下
{
"error": {
"errors": [
{
"domain": "youtube.parameter",
"reason": "authorizationRequired",
"message": "The request uses the <code>mine</code> parameter but is not properly authorized.",
"locationType": "parameter",
"location": "mine"
}
],
"code": 401,
"message": "The request uses the <code>mine</code> parameter but is not properly authorized."
}
}
根据 YouTube数据API - 错误
必须将401(未经授权) - authorizationRequired - 请求使用我的 参数但未经过适当授权。
mine 参数值设置为true,以指示API仅返回经过身份验证的用户拥有的频道。 (布尔值)
推断:您无权对内容所有者的内容进行授权,即YouTube频道所有者可能拒绝您的应用访问频道内容的权限。
这是一个许可问题。 URI中的channelId在哪里?应该添加它。
答案 2 :(得分:0)
如果您不拥有该频道,则API不会返回contentOwnerDetails。由于您使用的是mine=true
参数,因此在API返回contentOwnerDetails之前,您需要先通过OAuth进行适当授权。见https://developers.google.com/youtube/v3/guides/authentication