我正在尝试添加一个用于注销的功能,该功能在ApplicationBarMenuItem的click事件中调用,在
the instructions on this blog之后
这就是我的代码:
var oauth = new FacebookOAuthClient(); var logoutParameters = new Dictionary<string,object> { { "next","http://www.facebook.com" } }; var logoutUrl = oauth.GetlogoutUrl(logoutParameters); LayoutRoot.Children.Add(FacebookLoginBrowser); FacebookLoginBrowser.Navigate(new Uri(logoutUrl.AbsoluteUri,UriKind.Absolute));
我期望这段代码会在Navigated事件完成时将用户从Facebook注销,然后显示参数中传递的任何URL(在本例中为facebook.com).但是,我所看到的是它总是加载“http://m.facebook.com/”而不管传入什么并且它不会注销Facebook.我不关心它加载后的内容(这会很棒,但此时我只是希望它执行注销操作,以便用户可以在他们再次启动我的应用程序时退出并登录).我能成功注销用户的唯一方法是,如果他们了解页面何时加载,他们需要向下滚动,放大,并在页面底部手动点击“注销” – 这不是一个可接受的用户体验.
我见过this和this post,使用的URL非常接近oath.GetlogoutUrl(logoutParameters)返回的内容,但我尝试使用相同的结果构建确切的URL:
var logoutUrl = new Uri("https://www.facebook.com/logout.PHP?next=http://www.facebook.com&access_token="+fbClient.AccessToken);
这绝对是我的应用程序的船舶止动器,所以任何人可以提供的任何帮助或建议将非常感谢!
解决方法
显然它在Facebook方面被打破了:
http://bugs.developers.facebook.net/show_bug.cgi?id=17217