Php 获取youtube订阅者列表其给定错误为400

Php 获取youtube订阅者列表其给定错误为400,php,youtube,Php,Youtube,我正在尝试使用 但这给了我错误 { "error": { "errors": [ { "domain": "youtube.parameter", "reason": "incompatibleParameters", "message": "Incompatible parameters specified

我正在尝试使用

但这给了我错误

  {
 "error": {
  "errors": [
   {
    "domain": "youtube.parameter",
    "reason": "incompatibleParameters",
    "message": "Incompatible parameters specified in the request: channelId, mySubscribers",
    "locationType": "parameter",
    "location": ""
   }
  ],
  "code": 400,
  "message": "Incompatible parameters specified in the request: channelId, mySubscribers"
 }
}
1) 登录到Google帐户并转到。你可能必须开始一个新项目

2) 导航到API&auth并转到公共API访问->创建新密钥

3) 选择您需要的选项(我使用的是“浏览器应用程序”),这将为您提供一个API密钥

4) 在YouTube中导航到您的频道并查看URL。频道ID在这里:

5) 使用API密钥和通道ID获取此查询的结果:

各州:

此参数只能在正确授权的请求中使用

了解查询YouTube API有两种方法很重要:

  • 使用API密钥。您可以在中生成一个键,然后使用
    &key=
    将其附加到请求中,就像您所做的那样

  • 使用授权令牌。令牌授权您代表其他用户(频道)访问API。然后,您不仅可以检索数据,还可以更改频道或视频信息或上载视频。此外,您可以访问只有相应用户才能看到但公众看不到的数据。有关如何使用OAuth 2.0框架访问私有用户数据的信息,请参阅

  • 后一个过程稍微复杂一些,但如果您希望使用
    mySubscriptions
    mine
    参数,则必须使用后一个过程。仅使用API密钥时,这些参数不可用,因为API密钥未绑定到用户/通道


    既然你写了你想得到你的“自己的频道订户名单”,我假设你感兴趣的是已经订阅你的人的名单,而不是你已经订阅的人的名单。对于这种情况,实际上不能使用
    订阅.list
    端点的
    channelId
    参数,因为文档中说明:

    channelId参数指定YouTube频道ID。API将仅返回该频道的订阅

    (实际上,这意味着你订阅的所有频道,而这不是你想要的。)

    为了检索已订阅您的频道的用户列表,您需要使用OAuth 2.0令牌授权您的请求(请参阅上面链接的指南)


    还请注意,正如您不会通过YouTube网站看到这些订阅者一样,如果用户决定在其隐私设置中隐藏其订阅,它们也不会显示在API中。

    我没有专门尝试过这一点,但我怀疑您是否删除了这些订阅者

    &key={APPKEY}&channelId={channel ID}
    
    根据您的要求,使用

    &access_token={access token}
    

    你会得到你想要的。有时,如果您使用的是API资源管理器,它会误导您,告诉您使用密钥进行身份验证,而您真正需要的是使用在OAuth 2.0流中从您试图从中获取数据的帐户捕获的访问令牌

    错误消息解释了它自己,你确定你使用的是正确的值吗?@Mr.Phoenix我从中检查的这个参数还说,
    channelId
    mySubscribers
    都是“过滤器(精确指定以下参数之一)”,请建议其他方法,我怎样才能得到我的频道id的订户列表---你必须使用v2,为什么你给我负面的??你能试试我的代码@paolose吗?请对你的答案发表评论。你的答案完全错了。您在这里概述的不是OAuth工作流。另外,您描述的方法只会生成频道的订阅者数量,而不是列表。因此,如果您非常了解,请告诉我如何显示用户订阅者的所有列表。。我在等你
    **You Can Get Your Api key From Here !!**
    
    **You Can Get Your ChanelId From Here **
    
    &key={APPKEY}&channelId={channel ID}
    
    &access_token={access token}