2011-09-29 33 views
0

我已經在頁面上的步驟中使用FB.login()創建了多個應用程序,並依靠C#獲得相同的訪問權限會話,從而正確訪問(並保存)用戶信息。OA中的授予JS權限和使用服務器方式的權限方式(無會話)

JS: 
FB.login(function (response) { if (response.session) {// user has authed} }); 

C#: 
public FacebookSession CurrentSession { get { return (new CanvasAuthorizer()).Session; } } 

在兩天內Facebook將刪除會話支持,這打破了這個功能。據我所知我現在需要有一個頁面重新加載之前,服務器端可以檢測到授予的權限。 (https://developers.facebook.com/docs/authentication/)。看來我必須將用戶重定向到登錄框,然後設置回調,或者仍然使用JavaScript,但在用戶授予權限後重新加載頁面。

這真的讓人傷心,因爲應用程序在向用戶顯示應用程序界面之前工作得很好,然後再詢問任何權限並重新加載頁面。有誰知道如何再次將JS與服務器端耦合在一起?

+0

嗯,它似乎工作,如果我使用真正的URL,http:// mydomain /默認,但不在頁面選項卡內使用時 – Certs

+0

我已經通過添加一個暫時修復它,將它設置爲我從FB.login中取回的accesstoken,然後在serverside中讀取它。工程,但真的不是一個好的解決方案:( – Certs

回答

0

請確保您使用的是v5.2.1,它支持新的cookie格式,並且在js set oauth中:在調用登錄時爲true。

您現有的代碼將繼續工作,無需任何服務器端(c#)更改。