尝试使用 smack 连接 facebook 聊天时出现此错误

Posted

技术标签:

【中文标题】尝试使用 smack 连接 facebook 聊天时出现此错误【英文标题】:Getting this error while trying to connect facebook chat using smack 【发布时间】:2014-04-22 13:30:51 【问题描述】:

尝试使用 smack 连接 Facebook 聊天时收到此错误。 使用的罐子 smack 3.3.1.jar,smackx 3.3.1.jar

Exception in thread "main" java.lang.AbstractMethodError: org.jivesoftware.smackx.ServiceDiscoveryManager$1.connectionCreated(Lorg/jivesoftware/smack/Connection;)V
        at org.jivesoftware.smack.XMPPConnection.initConnection(XMPPConnection.java:652)
        at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:604)
        at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1022)
        at com.FacebookChatSample.main(FacebookChatSample.java:30)

【问题讨论】:

你能提供一些FacebookChatSample.java的sn-p吗? ConnectionConfiguration config = new ConnectionConfiguration("chat.facebook.com",5222,"facebook.com"); config.setSASLAuthenticationEnabled(true); XMPPConnection 连接 = 新 XMPPConnection(config); SASLAuthentication.registerSASLMechanism("X-FACEBOOK-PLATFORM", SASLXFacebookPlatformMechanism.class); SASLAuthentication.supportSASLMechanism("X-FACEBOOK-PLATFORM", 0);连接.连接();字符串 apiKey ="MYKEY";字符串 accessToken ="MYTOKEN"; connection.login(apiKey, accessToken); 从这里我获取了 SASLXFacebookPlatformMechanism 类 gist.github.com/btd/8596391 的代码 【参考方案1】:

我也遇到了同样的问题。原来我的 pom.xml 中没有放正确的包

我使用了以下 Maven 依赖项:

<dependency>
    <groupId>jivesoftware</groupId>
    <artifactId>smack</artifactId>
    <version>3.1.0</version>
</dependency>

当我尝试连接到我的服务器时,它给了我错误。当我将其更改为:

<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smackx</artifactId>
    <version>3.2.1</version>
</dependency>

成功了。

注意: smack 依赖是一开始的另一个条目,应该这样保留:

<dependency>
    <groupId>org.igniterealtime.smack</groupId>
    <artifactId>smack</artifactId>
    <version>3.2.1</version>
</dependency>

注意 2: 我没有明确使用 smackx 中的任何东西,它在 XMPPConnection.initConnection() 中使用,它试图通知所有 ConnectionCreationListener 侦听器刚刚建立了连接。

【讨论】:

以上是关于尝试使用 smack 连接 facebook 聊天时出现此错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Smack 集成 facebook 聊天时 SASL 身份验证失败

facebook 聊天 API 登录失败

如何使用 smack 获取 facebook 用户的移动在线状态?

XMPP Android - 构建客户端以在 facebook 上聊天或 facebook 聊天集成

如何在 Android (2014) 中使用 aSmack XMPP 库实现 facebook 聊天? [关闭]

Facebook XMPP 聊天连接