我正在为我的app.now开发聊天客户端我在gtalk,facebook,yahoo.iam上使用smack api测试它。我现在在gtalk上成功测试了它。但是在facebook的情况下我得到了错误
01-13 10:53:05.938: INFO/XMPPClient(389): [SettingsDialog] Connected to chat.facebook.com
01-13 10:53:07.178: ERROR/XMPPClient(389): [SettingsDialog] Failed to log in as chikka0305@chat.facebook.com
01-13 10:53:07.178: ERROR/XMPPClient(389): SASL authentication failed using mechanism DIGEST-MD5:
你可以看到ican connect但是无法登录。我已经在这里看到了同样的问题:http://stackoverflow.com/questions/3750547/facing-problem-using-smack-on-android。
但是那个答案对我不起作用。
请帮助我摆脱这个问题。
答案 0 :(得分:1)
本网站对此进行了解释: http://developers.facebook.com/docs/chat
您可以在此网站上看到以下摘录。
Authenticating with Username/Password
DIGEST-MD5 SASL机制可用于支持未针对(甚至不知道)Facebook定制的传统XMPP或多协议IM客户端。该机制需要提示用户输入他或她的密码;因此,它只应在必要时使用。特别是,它不能用于任何客户:
代理XMPP连接(连接必须直接从用户的计算机连接到Facebook)。 向第三方(包括客户端开发人员)报告消息或有关用户活动的任何其他信息。 与Facebook集成,或拥有Facebook应用程序ID。
如果您的应用程序执行上述任何操作,则必须使用Facebook平台身份验证。
用户的Jabber ID只是他或她的Facebook用户名,附加了@ chat.facebook.com。用户必须具有Facebook用户名才能使用DIGEST-MD5。在用户获得用户名后,他或她必须退出并进入Facebook一次,以便我们存储密码的特殊哈希值。
如果您的申请属于任何一种情况,那么它可能无效
答案 1 :(得分:0)
我遇到了我的问题。这完全适用于asmack-issue 15.jar.and你必须设置:connConfig.setSASLAuthenticationEnabled(true);
并且您必须在没有@ chat.facebook.com
的情况下设置写入用户名