你如何使用tmi.js制作正常运行命令,我认为它会如此简单;
client.on("chat", function(channel, user, message, self, uptime){
client.say("CHANNEL", "Channel has been live for " + uptime
})
你将如何制作这个命令,我给出的例子不起作用,我会请你告诉我。
答案 0 :(得分:0)
看起来Twitch WebSocket API上的频道元数据不可用。如果您想获取该信息,则需要浏览“New Twitch API”并使用/streams
端点。
您还需要Client-ID
向此端点发出请求。您可以按照此处的说明获取一个:Apps & Authentication Guide。
获得Client-ID
后,您可以提出请求。我正在使用node-fetch
模块来简化请求。此示例将获得2个最活跃的流。您可以调整查询字符串参数以获取适当的流。
const querystring = require("querystring"),
fetch = require("node-fetch");
const CLIENT_ID = "YOUR_CLIENT_ID";
const STREAMS_URL = "https://api.twitch.tv/helix/streams";
const qs = querystring.stringify({
first: 2
});
const qUrl = `${STREAMS_URL}?${qs}`;
const fetchArgs = {
headers: {
"Client-ID": CLIENT_ID
}
};
fetch(qUrl, fetchArgs)
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
这将打印出如下内容:
{
data: [{
id: '28378863024',
user_id: '19571641',
game_id: '33214',
community_ids: [],
type: 'live',
title: 'Morning Stream! | @Ninja on Twitter and Insta ;)',
viewer_count: 107350,
started_at: '2018-04-18T14:58:45Z',
language: 'en',
thumbnail_url: 'https://static-cdn.jtvnw.net/previews-ttv/live_user_ninja-{width}x{height}.jpg'
},
{
id: '28379115264',
user_id: '22859264',
game_id: '32399',
community_ids: [Array],
type: 'live',
title: 'LIVE: Astralis vs. Space Soldiers - BO1 - CORSAIR DreamHack Masters Marseille 2018 - Day 1',
viewer_count: 54354,
started_at: '2018-04-18T15:28:44Z',
language: 'nl',
thumbnail_url: 'https://static-cdn.jtvnw.net/previews-ttv/live_user_dreamhackcs-{width}x{height}.jpg'
}]
}
started_at
属性是流开始的时间戳。请记住,此API受速率限制,因此您可能应该缓存started_at
,这样您就不会立即用完请求。