2011-08-11 45 views
0

我目前正在研究需要連接到Facebook聊天的黑莓應用程序。我正在嘗試使用XMPP/Jabber接口。我可以從服務器獲得挑戰,但是當我發送我的回覆時,我會收到「未經授權」的失敗。我的回答是結構化的過程是這樣:通過黑莓上的Facebook聊天進行身份驗證的問題

API_KEY = [我的API密鑰] & CALL_ID = [以毫秒時間] &方法= auth.xmpp_login &隨機數= [從挑戰現時] & session_key可以= [說明如下] & v = 1.0 & SIG = [按如下進行計算]

對於會話密鑰,我一個browserfield發送用戶Facebook的網站。它返回一個訪問令牌的形式AAA...|BBB...|CCC...其中BBB...是所述會話密鑰

所述SIG通過取以下字符串,md5ing它,然後將所述字節爲十六進制字符串計算:

API_KEY = [我的API鍵] CALL_ID = [時間以毫秒]方法= 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獲得。

相關問題