2010-05-19 34 views
1

簡短的問題是: 如何使用圖形api oauth重定向機制來驗證用戶並保存檢索到的access_token並在需要時也使用javascript SDK(問題是JavaScript SDK將有不同初始化時的access_token)。Facebook圖形API認證的畫布應用程序和跟蹤會話

我最初設置了我的facebook iframe canvas應用程序,並帶有單一登錄。這適用於圖形api,因爲我能夠在檢測到sessionchange(用戶登錄)時使用由facebook的javascript保存的access_token。

但是,我寧願不做單點登錄。但是,使用圖形api重定向並強制用戶發送到權限對話框。但是,如果他已經給予權限,我不應該重定向用戶。如何處理這個?

另一個問題: 我已經完成了圖形API重定向認證,並已檢索access_token也。但是,如果我想用javascript調用FB.ui來做stream.Publish呢?我想它會使用它自己的access_token,它是在FB.init期間設置並檢測會話。所以,我在這裏尋找一些路徑。如何使用圖形API進行身份驗證,並在需要時使用Facebook的JavaScript SDK。

P.S.我正在使用ASP .NET MVC 2.我開發了一個驗證過濾器,它需要檢測用戶的身份驗證狀態和重定向(目前它是這樣做的,以繪製api授權url)

回答

1

我一直在努力Graph API的.NET客戶端名爲FBGraph.NET。我還沒有足夠的時間讓它進入發佈狀態,但是你仍然可以直接使用現有的代碼,或者作爲你正在嘗試做什麼的參考。

具體而言,FBFraphAuthorizeAttribute,FBGraphAuthenticationHelperFBGraphAuthorizationHelper

身份驗證/授權系統設置爲與ASP.NET窗體身份驗證分開,因此您可以單獨爲他們使用,也可以使用FBGraph Facebook授權直接替換Forms身份驗證。它會自動重定向用戶,並提示授權/擴展權限,如果他們還沒有授予他們。

我還沒有任何東西可以幫助在服務器端代碼和JS SDK之間工作,但我認爲訪問令牌應該是可以互換的。如果最終按原樣使用客戶端,則應該能夠在IFloringContext上設置任何標記,並相反將訪問令牌生成的服務器端傳遞給客戶端。