在黑莓上验证 Facebook 聊天时遇到问题

Posted

技术标签:

【中文标题】在黑莓上验证 Facebook 聊天时遇到问题【英文标题】:Trouble authenticating to facebook chat on Blackberry 【发布时间】:2011-08-11 21:43:16 【问题描述】:

我目前正在开发一个需要连接到 facebook 聊天的黑莓应用程序。我正在尝试使用 XMPP/Jabber 界面。我可以从服务器获得挑战,但是当我发送响应时,我得到“未授权”失败。我的回复结构如下:

api_key=[my api key]&call_id=[time in millis]&method=auth.xmpp_login&nonce=[nonce from challenge]&session_key=[解释如下]&v=1.0&sig=[计算如下所示]

对于会话密钥,我向用户发送了一个浏览器字段到 Facebook 的站点。它以AAA...|BBB...|CCC... 的形式返回一个访问令牌,其中BBB... 是会话密钥

sig 的计算方法是获取以下字符串,对其进行 md5 处理,然后将字节转换为十六进制字符串:

api_key=[我的 api 密钥]call_id=[以毫秒为单位的时间]method=auth.xmpp_loginnonce=[来自挑战的随机数]session_key=[上述解释]v=1.0[此处附加的密钥]

我从那里对响应进行 base64 编码,然后发送: <response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>[Base64EncodedResponse]</response>

Facebook 的回应始终是未经授权的错误,没有其他解释。有什么东西不见了还是什么?感谢您的帮助。

【问题讨论】:

【参考方案1】:

我能够弄清楚。问题是,它需要会话密码,而不是应用密码。所以签名末尾附加的秘钥是通过调用 auth.promoteSession 获取的,而不是从网站上的 App Secret 获取的。

【讨论】:

以上是关于在黑莓上验证 Facebook 聊天时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在黑莓上突出显示焦点自定义按钮域(ImageButtonField)?

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

黑莓推出原生网络浏览器

如何在黑莓手机中测试黑莓应用程序

使用 smack 和 servlet 连接到 facebook 聊天时

在黑莓中无延迟播放音频