我正在构建一个帮助类,允许我在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窗体
答案 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' 方法并运行身份验证测试。
总结最后一点,如果你还没有意识到,你需要意识到有两个不同的阶段:获取访问令牌和使用访问令牌。