检查facebook用户是否经过身份验证

时间:2012-01-04 07:57:04

标签: facebook facebook-c#-sdk

我正在构建一个帮助类,允许我在Windows窗体应用程序中管理facebook帐户。我正在使用Facebook C# SDK。正如其文档中所建议的那样,要知道用户是否经过身份验证,就会获得loginUrl

       var loginUrl = oauth.GetLoginUrl(parameters);

然后,导航到该Url

webBrowser.Navigate(loginUrl);

由于我在应用程序的后端,我想知道如何编写一个将返回true或false的helper类来显示用户是否经过身份验证。我很乐意做类似的事情:

public static  bool IsUserAunthenticated (string appId, string[] extendedPermissions)

如何编写此功能?有任何想法吗?请记住我在.net 4.0上使用Windows窗体

1 个答案:

答案 0 :(得分:1)

假设在

之后的某个时间调用此函数
webBrowser.Navigate(loginURL)

这样的解决方案可以起作用:

假设:

  • 用户已授权您的申请
  • 'facebookClient'是一个静态类字段已初始化

    public static bool isUserAuthenticated()  {
    try
    {
        facebookClient.Get("/me");
    
        //the lack of an exception thrown is a sign of success
        return true;
    }
    catch (FacebookOAuthException e)
    {
        //your access token used to initialize 'facebookClient' is invalid
        return false;
    } }
    

一些一般性说明:

  • 您没有显示任何代码来处理实际访问的检索 令牌。我一直在假设你为了简洁而离开了。

  • 传递'appID'和'extendedPermissions'表示此方法 将用于注册用户,而不是用于测试是否他们 已经是您申请的用户。

  • 与上述相关,您可以将访问令牌传递给 参数,这样你就可以在里面初始化'facebookClient' 方法并运行身份验证测试。

总结最后一点,如果你还没有意识到,你需要意识到有两个不同的阶段:获取访问令牌和使用访问令牌。