使用Twitch.js调用Twitch Helix API报ClientID is missing错误如何解决
问题解决方法
根因说明
你的问题是参数命名和结构不符合twitch-js的要求,具体错误点如下:
- Api构造参数名不匹配:twitch-js要求传入的客户端ID参数名为
clientId(驼峰命名,d小写),授权令牌参数名为oAuth,你代码里写的clientID(D大写)、token不符合要求,导致框架识别不到客户端ID - API请求参数结构错误:调用
api.get时查询参数需要放在query字段下,你写的search字段无法被框架识别 - 代码语法疏漏:
run函数缺少闭合的大括号,会导致运行时语法错误
修复后的完整代码
const { Chat, Api } = require("twitch-js"); const username = "xxxxxx"; const token = "xxxxxxxx"; const channel = "xxxxxx"; const clientId = "xxxxxx"; const run = async () => { const chat = new Chat({ username, token }); const api = new Api({ clientId, oAuth: token }); await chat.connect(); await chat.join(channel); //API test ↓ api.get('bits/leaderboard', { query: { user_id: 'xxxxx' } }).then(response =>{ console.log(response); }).catch(err => { console.error('请求报错:', err) }) } run();
额外注意事项
- 调用bits/leaderboard接口需要你的令牌提前申请
bits:read权限,否则会返回401权限不足错误 - 你的令牌不要带
oauth:前缀,如果生成的令牌自带前缀需要提前删除
内容的提问来源于stack exchange,提问作者Sannen
相关产品推荐
相关产品推荐

