将Facebook API从第5版切换到第6版

时间:2012-07-21 01:35:05

标签: asp.net facebook authentication facebook-c#-sdk

我有这个使用Facebook C#API v5的代码,并且在AJAX调用上运行以确定用户是否经过身份验证:

// 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无处可寻。对于上面的代码,我该使用什么?

2 个答案:

答案 0 :(得分:1)

我不确定这是否会对您有所帮助,但据我了解,Facebook从c#sdk中删除了这些功能,因为他们想要更改某些Facebook Cookie的结构。通过删除FacebookWebContext,他们/您不会冒险遇到cookie结构可能已更改且事物不再兼容的问题。

相反,我认为您应该尝试通过Facebook Javascript SDK

进行身份验证

尝试使用 FB.getLoginStatus和/或 FB.getAuthResponse

答案 1 :(得分:0)

FacebookWebContext不再可用。这已在第5版中标记已弃用。在解决方案上执行“全部重建”时,请在Visual Studio中检查警告屏幕。

现在你必须使用Facebook命名空间中的FacebookClient()。

然后,您必须检查可能有多个结果的FacebookOAuthException。您可以在https://developers.facebook.com

上找到FacebookOAuthException的文档