Facebook 聊天 - X-FACEBOOK-PLATFORM 身份验证

Posted

技术标签:

【中文标题】Facebook 聊天 - X-FACEBOOK-PLATFORM 身份验证【英文标题】:Facebook chat - X-FACEBOOK-PLATFORM authentication 【发布时间】:2010-09-14 13:53:39 【问题描述】:

我想在 android 上构建一个 XMPP 客户端,我使用 Digest-MD-5 进行身份验证使其运行完美,但是当我尝试将其转换为 X-FACEBOOK-PLATFORM 时,它一直失败。

【问题讨论】:

能否将下载的相关部分提取为问题中的文本? 【参考方案1】:

所以基本上 X-FACEBOOK-PLATFORM 身份验证只使用访问令牌的一部分。这称为会话密钥。

访问令牌由“|”分隔字符,因此您拆分访问令牌并仅获取位于中心的字符。请参阅下文。

******|a681464febcefb8* -**|**** **

long callId = new GregorianCalendar().getTimeInMillis() / 1000L;

            String sig = "api_key=" + apiKey
                            + "call_id=" + callId
                            + "method=" + method
                            + "nonce=" + nonce
                            + "session_key=" + sessionKey
                            + "v=" + version
                            + appSecret;

            try 
                sig = MD5(sig);
            
            catch (NoSuchAlgorithmException e) 
                throw new IllegalStateException(e);
            

            String composedResponse = "api_key=" + URLEncoder.encode(apiKey, "utf-8")
                                        + "&call_id=" + callId
                                        + "&method=" + URLEncoder.encode(method, "utf-8")
                                        + "&nonce=" + URLEncoder.encode(nonce, "utf-8")
                                        + "&session_key=" + URLEncoder.encode(sessionKey, "utf-8")
                                        + "&v=" + URLEncoder.encode(version, "utf-8")
                                        + "&sig=" + URLEncoder.encode(sig, "utf-8");

【讨论】:

【参考方案2】:

我从来没有让 FB 聊天与我的 appSecret 一起工作,而是使用了 sessionSecret。您可以使用旧的 REST API 来获取它。

http://developers.facebook.com/docs/reference/rest/auth.promoteSession/

这样您就可以将您的 appSecret 保密。另外值得注意的是,X-FACEBOOK-PLATFORM 身份验证很少在第一次尝试时成功,但通常需要 3-6 次重试。打败我为什么虽然我使用相同的会话密钥和秘密..

【讨论】:

以上是关于Facebook 聊天 - X-FACEBOOK-PLATFORM 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 gloox 登录 Facebook 聊天

如何使聊天网络应用程序使用 Skype 等 Facebook 聊天 API?

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

使用 Facebook 身份验证创建聊天室

Facebook 聊天 API - 是不是可以与 2 个未知用户聊天?

无法使用 xmpphp 连接到 Facebook 聊天