如何在 IRC 服务器中发送消息聊天?

Posted

技术标签:

【中文标题】如何在 IRC 服务器中发送消息聊天?【英文标题】:How to send message to chat in IRC server? 【发布时间】:2013-11-25 04:55:33 【问题描述】:

Here是API服务器,描述了如何连接到这个服务器,但是我不知道如何在java中实现。

首先我需要使用登录名和密码连接到他的 irc 服务器。然后发送消息。 我找到PircBot 连接到 IRC 服务器,但无法连接到...到this API

    如何连接IRC服务器? 如何向 IRC 服务器发送消息?

我尝试在Client 中运行this library

java 客户端 -server irc.twitch.tv:6667 -pass oauth:1vuwah03rawwpgs5u38y -nick nick -user nick -name nick -ssl

Exception in thread "main" java.lang.NoClassDefFoundError: org/schwering/irc/lib
/IRCConnection
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.schwering.irc.lib.IRCConnection

        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)

【问题讨论】:

当您搜索“java IRC”或“java oAuth”等术语时,您发现了什么?提示:如果您还没有这样做,那么您现在应该在浏览器中输入这些搜索词... 【参考方案1】:

如果您查看 PircBot 文档,您会看到您可能需要的部分是:

建立连接: http://www.jibble.org/javadocs/pircbot/org/jibble/pircbot/PircBot.html#connect(java.lang.String, int)

发送密码: http://www.jibble.org/javadocs/pircbot/org/jibble/pircbot/PircBot.html#sendRawLine(java.lang.String)

我将冒险猜测,因为我从未连接到 twitch,但我想你的连接线看起来像:

bot.connect("irc.twitch.tv",6667);
bot.sendRawLine("PASS oauth:twitch_oauth_token");
bot.sendRawLine("NICK yournickname");

编辑:

并回答标题中的问题:

一旦连接到服务器,PircBot 就会有一个sendMessage(String channel,String message) 方法,正如您所期望的那样,它将向频道发送一条消息。

【讨论】:

【参考方案2】:

我尝试了 C_STo 的代码,但它对我不起作用。这是对我有用的代码:

bot.connect("irc.chat.twitch.tv", 6667, "oauth:your_auth_code_here");

您提供身份验证代码作为连接方法的参数。这种方法对我有用。但在此之前,您应该设置您的姓名和用户。您可以使用以下命令执行此操作:

bot.setName("your_username");
bot.setLogin("again_your_username");

【讨论】:

以上是关于如何在 IRC 服务器中发送消息聊天?的主要内容,如果未能解决你的问题,请参考以下文章

哪种聊天模式更好:在输入时打印消息,还是在服务器接收到消息后打印? [关闭]

如何在聊天中发送消息,以便所有者加入时向服务器发送消息?

我可以在不加入 IRC 频道的情况下向它发送消息吗?

如何使用twisted每隔几秒发送一次IRC消息?

选择正确的聊天协议实现

在 IRC 消息中插入换行符