2012-07-21 19 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