【问题标题】:Get youtube subscribers list its given me 400 error获取 youtube 订阅者列表给我 400 错误
【发布时间】:2017-09-11 11:27:51
【问题描述】:

我正在尝试使用

获取我自己的频道订阅者列表
https://www.googleapis.com/youtube/v3/subscriptions?part=subscriberSnippet&mySubscribers=true&key={APPKEY}&channelId={channel ID}

但它给了我错误

  {
 "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"
 }
}

【问题讨论】:

标签: php youtube


【解决方案1】:

我没有具体尝试过,但我怀疑你是否删除了

&key={APPKEY}&channelId={channel ID}

从您的请求中改为使用

&access_token={access token}

你会得到你正在寻找的东西。有时,如果您使用 APIs Explorer,它会误导您,告诉您使用密钥进行身份验证,而您真正需要的是使用您在 OAuth 2.0 流程中从您尝试获取的帐户中捕获的访问令牌数据来自。

【讨论】:

    【解决方案2】:
    <?php
    $apiKey = 'puthereyouapikey';
    $chanelId = 'channelid';
    $json = json_decode((file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=statistics&id='.$channelId.'&key='.$apiKey)), true);
    echo ($json != NULL) ? (($json['items']['0']['statistics']['subscriberCount'])) : '';
    ?>
    

    YouTube API v3.0

    **You Can Get Your Api key From Here !!**
    

    1) 登录 Google 帐户并转到 https://console.developers.google.com/。您可能需要开始一个新项目。

    2) 导航到 APIs & auth 并转到 Public API Access -> Create a New Key

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

    4) 导航到您在 YouTube 中的频道并查看 URL。频道ID在这里:https://www.youtube.com/channel/YOUR_CHANNEL_ID

    5) 使用 API 密钥和通道 ID 通过以下查询获取结果:https://www.googleapis.com/youtube/v3/channels?part=statistics&id=YOUR_CHANNEL_ID&key=YOUR_API_KEY

    **You Can Get Your ChanelId From Here **
    

    https://www.youtube.com/account_advanced

    【讨论】:

    • 您的回答完全错误。您在此处概述的不是 OAuth 工作流程。此外,您描述的方法只会产生频道的订阅者数量,而不是列表。
    • 所以,你告诉我如何显示用户订阅者的所有列表,如果非常了解.. 我正在等待 4 Ans
    【解决方案3】:

    documentation for the parameter mySubscribersof subscribers.list 声明:

    此参数只能在经过适当授权的请求中使用。

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

    1. 使用 API 密钥。您可以在Cloud Console 中生成一个密钥,然后将其附加到带有&amp;key= 的请求中,就像您所做的那样。

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

    后面的过程稍微复杂一些,但是如果你想使用mySubscriptionsmine 参数,这是必要的。仅使用 API 密钥时,这些参数不可用,因为 API 密钥未绑定到用户/频道。


    既然你写了你想要获得你的“自己的频道订阅者列表”,我假设你对订阅你的人的列表感兴趣,而不是你订阅的人的列表。对于这种情况,您实际上不能使用 subscriptions.list 端点的 channelId 参数,因为文档指出:

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

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

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

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

    【讨论】:

    • 你为什么给我负数??你能试试我的代码@paolo
    • 查看对您答案的评论。
    猜你喜欢
    • 1970-01-01
    • 2019-02-15
    • 2017-11-25
    • 1970-01-01
    • 2015-03-27
    • 2019-03-25
    • 2022-01-23
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多