尝试使用 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 身份验证失败
如何使用 smack 获取 facebook 用户的移动在线状态?
XMPP Android - 构建客户端以在 facebook 上聊天或 facebook 聊天集成