2010-03-07 56 views
2

我花了整個週六用盡了Google。嚴重的好Karma屬於任何可以幫助的人。基於有效的脫機訪問密鑰(無限會話密鑰)創建Javascript Facebook Connect會話

我正在使用.NET的Facebook工具包V3來驗證我的用戶對Facebook。當用戶授予offline_access權限時,我將存儲會話密鑰。當他們稍後沒有facebook會話時返回(但爲我的web應用程序提供有效會話)。

我抓住從數據庫中的密鑰和我把它應用到Facebook.Session像這樣:

facebookAPI.Session.SessionKey = offlineAccesSessionKey; 
    facebookAPI.Session.UserId = (long)fuid; 

功效神奇。

現在,這裏的問題

如何使用使用JavaScript API和FBML這無限的會話密鑰?

我可以將會話密鑰傳遞給客戶端,但那又如何? getAuth? set_session?不能讓它工作,盡我所能,並不確定它會幫助我FBML。

我已經試過這樣:

facebookAPI.Auth.Session.UserId = (long)fuid; 
    facebookAPI.Auth.Session.SessionKey = offlineAccesSessionKey; 
    facebookAPI.Auth.Session.SessionSecret = _facebookAPI.Session.SessionSecret; 
    facebookAPI.Auth.PromoteSession(); 

希望它複製的餅乾,我可以接他們的客戶端,但沒有運氣。

看起來它一定是一個很常見的情況,但我的「專家」谷歌技能是零。

有沒有人有任何經驗可以幫忙?

+0

是否有無限的會話密碼,您可以存儲以及?我認爲這是一個雙向的鑰匙(即使是無限的鑰匙) – Doug 2011-01-11 06:46:29

回答

0

據我所知,面向Facebook的JS API會在其被使用的時候生成自己的會話(如果我錯了,請糾正我)。該會話是暫時的,因此無法在服務器上使用其令牌。

您可以做的是將uid與(無限)令牌一起存儲在數據庫中。然後使用JS API,您可以從客戶端獲取uid,發送到服務器,然後從數據庫中檢索令牌。然後,您可以代表用戶執行正常的服務器端連接。

我希望它有幫助。