Twitch API 返回错误频道
Twitch API returning incorrect channel
我目前正在使用 Twitch API,出于某种原因向 /api.twitch.tv/helix/search/channels?query=[STREAMER_NAME]
发出 GET 请求似乎返回了错误的 streamer/user。这是一个例子:
/api.twitch.tv/helix/search/channels?query=loltyler1
returns 错误的用户,因为 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));
}
不确定是否有帮助,但这是 discord 机器人项目的一部分。感谢您的帮助!
几个月前我也不得不处理 Twitch
的 API
我有同样的问题。如果你 log
你的 res
变量你应该注意到,它返回了很多 streamers
与 similar names
为了获得想要的,您必须过滤收到的 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
但我要指出我必须 重新创建 这个,因为它不完全强壮的。 但是对于你的问题你可以很好地定位自己
我目前正在使用 Twitch API,出于某种原因向 /api.twitch.tv/helix/search/channels?query=[STREAMER_NAME]
发出 GET 请求似乎返回了错误的 streamer/user。这是一个例子:
/api.twitch.tv/helix/search/channels?query=loltyler1
returns 错误的用户,因为 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));
}
不确定是否有帮助,但这是 discord 机器人项目的一部分。感谢您的帮助!
几个月前我也不得不处理 Twitch
的 API
我有同样的问题。如果你 log
你的 res
变量你应该注意到,它返回了很多 streamers
与 similar names
为了获得想要的,您必须过滤收到的 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
但我要指出我必须 重新创建 这个,因为它不完全强壮的。 但是对于你的问题你可以很好地定位自己