我正在使用我的IRC Bot for Twitch.tv(pircbot API),并希望在流媒体上线后,机器人自动连接到流的聊天。
我找到了Twitch API(here),但我不知道 我是如何将它实现到我的机器人中的,因为我对Java很新。
如果有人可以告诉我如何在线上线时如何检索任何提示,以及我如何检查现在观看的观众数量,那会很酷。
问候
答案 0 :(得分:5)
我意识到这个问题是在大约一年前发布的,但我觉得有必要回答这个问题以防万一其他人偶然发现这个帖子。 Cam.Stokes所说的是现实。这是问题的答案。然而,提问者表示他是Java的新手,因此我想使用代码片段来解决Cam.Stokes所说的内容。
捕捉流是否有效并不困难。以下代码是我的机器人的代码片段。我有一个线程定期从twitch API接收JSON数据,然后将其加载到JSON对象中。我正在使用的JSON库名为" minimal-json"。如果你问我,优秀轻量级的lib。当您查看代码时,您可以看到我在做什么;调用twitch-api,从目标流中获取JSON,看看" stream"对象充满了数据。如果是的话,流是直播,否则,不是直播。
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连接机器人非常简单。 Nicolai回答。确保你有一个与你的机器人账户链接的抽搐的Oauth密钥。目标频道为小写字母,前面带#。你应该好好去。
祝你好运。答案 1 :(得分:2)
您需要先获得身份验证密钥
然后你需要在主java文件中设置它
bot.connect("irc.twitch.tv", 6667, "oauth:YOURAUTHKEY");
bot.joinChannel("#YOURCHANNEL-INLOWERCASE");
如果您有其他问题,请告诉我
答案 2 :(得分:1)
查看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秒左右检查一次流状态,以及" stream:" json中的对象不为null,进行连接。
一个用于解析json的好lib(如果你正在做抽搐的东西,你将需要通过外观向前和向前解析大量的json)是gson。
(我需要超过10个代表才能发布超过2个链接,但复制粘贴时请不要使用空格http:// code.google.com/p/google-gson/)