Twitch API返回403,带有授权和客户端ID?

问题描述

我正在尝试从游戏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,CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt($ch,CURLOPT_HTTPHEADER,$X);

$result = curl_exec($ch);

结果应该是侠盗猎车手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上做到了。我发现许多人都遇到相同的问题,但是无法复制他们的任何解决方案。有人知道吗谢谢。

解决方法

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...