【问题标题】:Twitch API returning 403 with Authorization and Client ID?Twitch API 返回 403 和授权和客户端 ID?
【发布时间】:2021-01-27 08:32:31
【问题描述】:

我正在尝试列出来自游戏 ID 的活动 Twitch 流。

我的代码如下:

$ch = curl_init();
$URL = 'https://api.twitch.tv/helix/streams?game_id=3412';
$X = [
    'Authorization: Bearer {Client Secret}',
    'Client-ID: {Client ID}',
];
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, $X);

$result = curl_exec($ch);

结果应该是 Grand Theft Auto III 的流媒体,但是我得到的响应是这样的:

object(stdClass)[121]
  public 'error' => string 'Unauthorized' (length=12)
  public 'status' => int 401
  public 'message' => string 'Invalid OAuth token' (length=19)

我生成了一个新密钥并验证了我的客户 ID 是正确的。我一直在关注这个文档:https://dev.twitch.tv/docs/api/reference#get-streams

在这里挠头,我以前在旧 API 上做过这个。我发现很多人都有同样的问题,但无法复制他们的任何解决方案。有人知道吗?谢谢。

【问题讨论】:

  • 我认为 Authorization 中的 KEY 与 Client-ID 中的 KEY 不同
  • @codeomnitrix 很抱歉造成混淆,我将分别发送我的客户 ID 和客户密码,我的原始帖子造成了混乱,我正在更新它。
  • 一切看起来都很好。您只需要三重检查您是否为不记名令牌和客户端 ID 设置了正确的值。确保您没有意外复制任何空白字符或类似内容。
  • @Phil 我已经检查并通过控制台运行了它,以确保 PHP 没有捏造某些东西。我还尝试了他们列出的几个示例,使用我自己的令牌,但似乎没有任何效果。想法用完了。
  • 您是否尝试过使用 curl 或 Postman 的令牌?

标签: php api curl twitch twitch-api


【解决方案1】:

您需要get an authorization token与客户端密码分开,用于授权标头。客户端凭据流是三个受支持且适合不代表任何特定用户执行的后端 API 调用中最简单的一个。

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2018-07-28
    • 1970-01-01
    相关资源
    最近更新 更多