为什么Youtube"频道" API不会返回" contentOwnerDetails"数据?

时间:2016-07-07 11:15:11

标签: youtube-api

我尝试拨打Youtube 频道 API,但响应没有 contentOwnerDetails 。有什么问题?

GET https://www.googleapis.com/youtube/v3/channels?part=id%2CcontentDetails%2CcontentOwnerDetails&mine=true&key={YOUR_API_KEY}

3 个答案:

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