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 机器人项目的一部分。感谢您的帮助!

几个月前我也不得不处理 TwitchAPI 我有同样的问题。如果你 log 你的 res 变量你应该注意到,它返回了很多 streamerssimilar 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 但我要指出我必须 重新创建 这个,因为它不完全强壮的。 但是对于你的问题你可以很好地定位自己