2012-07-21 17 views
0

我有這樣的代碼,使用Facebook的C#API V5和上一個AJAX調用正在運行弄清楚,如果用戶進行身份驗證:開關Facebook的API從V 5到V 6

// Make sure user is logged into Facebook and authroized this application 
if (!FacebookWebContext.Current.IsAuthenticated() || 
!FacebookWebContext.Current.IsAuthorized(new[] { "email" })) 
{ 
    result.ResultCode = BasicResultCode.NotAuthorized; 
    return result; 
} 

var fbuid = FacebookWebContext.Current.UserId; 

在V6,Facebook的。 Web名稱空間不存在,FacebookWebContext無處可找。我用什麼來代替上面的代碼?

回答

1

我不確定這是否會對你有幫助,但據我所知,Facebook從c#sdk中刪除了這些功能,因爲他們想改變一些Facebook cookie的結構。通過刪除FacebookWebContext,他們/你不會冒險陷入cookie結構可能已經改變而且事情不再兼容的問題。

相反,我認爲你應該嘗試通過使用 FB.getLoginStatus和/或 FB.getAuthResponse

0

的FacebookWebContext不再可用的Facebook Javascript SDK

嘗試做您的身份驗證。這已經在第5版中被標記爲已棄用。在解決方案中執行重建全部時,請在Visual Studio中檢查警告屏幕。

現在您必須使用Facebook名稱空間中的FacebookClient()。

然後您必須檢查可能有多個結果的FacebookOAuthException。您可以在Facebook上找到FacebookOAuthException的文檔https://developers.facebook.com

+0

Facebook.Web不再存在於v6以及FacebookWebClient類中。 – Andrey 2012-07-23 16:20:50

+0

對不起安德烈,你說得對。我正在看我的舊分支。我也從5轉換到6.今晚有一個SDK的製造商的新職位。也許這可以幫助你。 http://blog.ntotten.com/2012/07/23/facebook-apps-and-windows-azure-web-sites-part-1-getting-started/ – 2012-07-24 06:55:36

+0

好吧,讓我們這樣做:我刪除「-1 「並且你刪除了這個不正確的答案 - 雙贏:) – Andrey 2012-07-24 14:00:25