如何解决Twitch API 返回不正确的频道 注意:
我目前正在使用 Twitch API,出于某种原因,向 /api.twitch.tv/helix/search/channels?query=[STREAMER_NAME]
发出 GET 请求似乎返回了不正确的主播/用户。下面是一个例子:
/api.twitch.tv/helix/search/channels?query=loltyler1
返回错误的用户,因为 broadcaster_login
是错误的。 "broadcaster_login": "loltyler1dotcomdiscoalpha"
这似乎不仅仅发生在这个特定帐户上。另一个例子是当使用 imkaicenat 作为查询并返回一个名为 imkaidenbtw 的用户时。这是一个函数的例子,它从我自己的代码向他们的 api 发出 GET 请求,希望这在 Twitch 端不是问题,这里有一些可以解决的问题:
client.on("message",(msg) => {
// split message into array of words
const args = msg.content.split(" ");
// If bot sends message end functions
if (msg.author.bot) return;
// Get info
if (msg.content.startsWith(`${prefix}live`)) {
// Make get request to Twitch API with streamer name
axios
.get(`https://api.twitch.tv/helix/search/channels?query=${args[1]}`,{
headers: {
"client-id": process.env.TWITCH_CLIENT_ID,Authorization: `Bearer ${process.env.TWITCH_ACCESS_TOKEN}`,},})
.then((res) => {
let response = res.data.data;
response[0].is_live
? msg.reply(
`${response[0].broadcaster_login} is live playing ${response[0].game_name}. Watch here: https://twitch.tv/${response[0].broadcaster_login}`
)
: msg.reply(`${response[0].broadcaster_login} is not live`);
})
.catch((err) => console.log(err));
}
不确定是否有帮助,但这是不和谐机器人项目的一部分。感谢您的帮助!
解决方法
几个月前,我也不得不处理 Twitch
的 API
我遇到了同样的问题。如果您log
res
变量,您应该注意到,它返回了很多具有相似名称
streamers
为了获得所需的,您必须过滤您收到的 data
。此外,您必须先使用 res.json()
:
const streamer = 'name of the streamer'.toLowerCase();
[...]
.then(res => res.json())
.then(res = {
if(!res.data) return console.log('Streamer not found!');
const broadcaster = res.data.filter(filter => filter.display_name.toLowerCase() === streamer)[0];
})
注意:
如果您愿意,可以查看我的 twitch live command
,但我要指出的是,我必须重新创建这个,因为它不是很健壮。 但是对于您的问题,您可以很好地定位自己
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。