微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Twitch API 返回不正确的频道 注意:

如何解决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));
  }

不确定是否有帮助,但这是不和谐机器人项目的一部分。感谢您的帮助!

解决方法

几个月前,我也不得不处理 TwitchAPI 我遇到了同样的问题。如果您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 举报,一经查实,本站将立刻删除。