我正在为用户需要登录的 windows phone 8 开发一个应用程序,然后该应用程序将发布到用户的墙上。
我基本上已经弄清楚了,但是在第一次登录后,我不必再次登录。我尝试删除手机上的浏览器数据,检查我的运行时目录,并尝试使用 FacebookClient.GetLogoutUrl 注销并导航到它,但它仍然认为我已登录。
我的登录信息是如何存储的?
一旦我弄清楚了,有没有一种在运行时确定这一点的好方法,以便我的应用程序可以相应地进行自我配置?
我正在为用户需要登录的 windows phone 8 开发一个应用程序,然后该应用程序将发布到用户的墙上。
我基本上已经弄清楚了,但是在第一次登录后,我不必再次登录。我尝试删除手机上的浏览器数据,检查我的运行时目录,并尝试使用 FacebookClient.GetLogoutUrl 注销并导航到它,但它仍然认为我已登录。
我的登录信息是如何存储的?
一旦我弄清楚了,有没有一种在运行时确定这一点的好方法,以便我的应用程序可以相应地进行自我配置?
这是因为一旦生成,访问令牌的有效期为 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
您必须向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));