我下次使用应用程序时为什么不需要登录?

时间:2013-02-21 21:23:17

标签: facebook-c#-sdk

我正在为用户需要登录的Windows Phone 8开发应用程序,然后该应用程序将发布到用户的墙上。

我基本上已经解决了这个问题,但在第一次登录后,我还没有必要再次登录。我尝试删除手机上的浏览器数据,检查我的运行时目录,并尝试使用FacebookClient.GetLogoutUrl注销并导航到它,但它仍然认为我已登录。

我的登录信息是如何存储的?

一旦我弄清楚了,有没有一种很好的方法可以在运行时确定这一点,以便我的应用可以自行配置?

2 个答案:

答案 0 :(得分:0)

您必须向用户GetLogoutURL提供access_token功能。

尝试使用此方法获取 LogoutURL 并导航到它:

public static string GetLogoutURL(string AccessToken)
{
    var fb = new FacebookClient();
    var logoutUrl = fb.GetLogoutUrl(new { access_token = AccessToken, next = "https://www.facebook.com/connect/login_success.html" });
    return logoutUrl.ToString();
}

使用任何隐藏的WebBrowser来执行此导航:

AnyWebBrowserControl.Navigate(GetLogoutURL(AccessToken));

答案 1 :(得分:0)

这是因为一旦生成,访问令牌有效期为2个月。即使用户注销,您仍然可以向API发出请求,直到访问令牌有效。

And once I figure that out, is there a good way to determine this at runtime so that my app can configure itself accordingly?

是的,您可以通过查找FacebookOAuthException

来检查(在运行时)访问令牌是有效还是过期

这是一个很好的教程:http://www.thepcwizard.in/2013/02/working-with-facebook-c--sharp-sdk.html