我正在为 Twitch.tv (pircbot API) 开发我的 IRC 机器人,并希望在直播上线后让机器人自动连接到直播聊天。
我找到了一个 Twitch API(这里),但我不知道如何在我的机器人中实现它,因为我对 Java 还很陌生。
如果有人能告诉我有关如何检索流是否在线以及如何检查现在观看的观众数量的任何提示,那将是很酷的。
问候
我意识到这个问题是大约一年前发布的,但我觉得回答它很重要,以防其他人偶然发现这篇文章。Cam.Stokes 说的很到位。这是问题的答案。然而,提问者表示他是 Java 新手,所以我想使用代码片段来计算 Cam.Stokes 所说的内容。
捕捉流是否正在直播并不难。以下代码是我的机器人的一个片段。我有一个线程定期从 twitch API 接收 JSON 数据,然后将其加载到 JSON 对象中。我正在使用的 JSON 库称为“minimal-json”。如果你问我,优秀的轻量级库。当您查看代码时,您可以看到我在做什么;调用 twitch-api,从目标流中获取 JSON,查看“流”对象是否填充了数据。如果是这样,则流是实时的,否则,不是实时的。
import com.eclipsesource.json.JsonObject; // minimal-json specific
private static String TWITCH_STREAM = "https://api.twitch.tv/kraken/streams/$c$";
private static String insertChannel(String url, String channel)
{
return url.replace("$c$", channel );
}
public boolean isStreamLive()
{
try
{
URL url = new URL( insertChannel(TWITCH_STREAM, targetChannel) );
URLConnection conn = url.openConnection();
BufferedReader br = new BufferedReader( new InputStreamReader( conn.getInputStream() ));
String inputLine = br.readLine();
br.close();
JsonObject jsonObj = JsonObject.readFrom(inputLine);
return ( jsonObj.get("stream").isNull() )?false:true;
}
catch (IOException e)
{
e.printStackTrace();
}
return false;
}
使用 PircBot 连接机器人相当简单。尼古拉回答。确保您拥有来自 twitch 的 Oauth 密钥,该密钥与您的机器人帐户相关联。目标通道是小写的,前面有一个#。你应该很高兴。
祝你好运。
您需要先获取身份验证密钥
链接:http ://twitchapps.com/tmi/
然后你需要在主java文件中设置它
bot.connect("irc.twitch.tv", 6667, "oauth:YOURAUTHKEY");
bot.joinChannel("#YOURCHANNEL-INLOWERCASE");
如果您还有其他问题,请告诉我
查看 twitch API 的聊天部分,了解如何使用 PircBot 连接到聊天:
https://github.com/justintv/Twitch-API/blob/master/IRC.md
至于获取直播状态,这有点困难,但你想要的网址是:
https://github.com/justintv/Twitch-API/blob/master/v2_resources/streams.md#get-streamschannel
我的建议是设置一个定时线程每隔 10 秒左右检查一次流状态,如果 json 中的“stream:”对象不为空,则建立连接。
一个很好的解析 json 的库(如果你在做 twitch 的东西,你需要通过外观来向后和向前解析很多 json)是 gson。
(我需要超过 10 个代表来发布超过 2 个链接,但是复制粘贴这个没有空格 http://code.google.com/p/google-gson/ )