我正在处理使用X-FACEBOOK-PLATFORM SASL认证机制的facebook聊天认证。使用X-FACEBOOK-PLATFORM SASL认证的facebook聊天认证
我正在按照Facebook开发人员论坛和计算器的问题所述形成用户和密码。
的一点是,如果我使用application_secret作为密码,我可以登录,但根据计算器的问题(下面的链接)它应该是从旧的REST API方法auth.promoteSession生成会话
我想使用旧的休息API方法,以避免在我们的桌面应用程序罐中分发application_secret。
所以问题是,你是如何设法用auth.promoteSession登录的?
我已阅读下列哪些职位有很大的帮助:
http://community.igniterealtime.org/message/205739#205739
XMPP with Java Asmack library supporting X-FACEBOOK-PLATFORM
而且我用它来fromt的igniterealtime后的类SASLXFacebookPlatformMechanism.java,它被注册correclty。
我有xmpp_login和offline_access权限。我已经禁用了删除已过时的身份验证方法,所以我可以调用旧的休息API方法,在这种情况下:auth.promoteSession 我在Facebook中也使用客户端流身份验证。
因此,使用application_secret作为密码,我得到:
<stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-FACEBOOK-PLATFORM</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms></stream:features>
<challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dmVyc2lvbj0xJm1ldGhvZD1hdXRoLnhtcHBfbG9naW4mbm9uY2U9NEIxRUQzNTA5MTQ5MDQxRTE4N0QyNTA0NTUzNjBDQjc=</challenge>
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
但是,如果使用由auth.promoteSession返回的值,我得到:
<stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-FACEBOOK-PLATFORM</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms></stream:features>
<challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dmVyc2lvbj0xJm1ldGhvZD1hdXRoLnhtcHBfbG9naW4mbm9uY2U9MzhFQkUxOTUxNENGRUU4ODc2NzRDREQ0RjhBMUQ0QjI=</challenge>
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>
[我把它作为一个小型图书馆](https://github.com/javanto/smack-facebook)。 – hleinone 2012-01-24 09:19:20
@hleinone我也试图在ma android应用程序中实现Facebook聊天,但我没有得到要导入的SASLMechanism类。我们必须下载任何库或jar文件才能导入。如果请提供有效的链接以下载.. – Arun 2013-01-29 07:06:47
您需要使用[Smack](http://www.igniterealtime.org/projects/smack/index.jsp)库。 – hleinone 2013-01-29 08:42:05