我正在开发一个应该在桌面和移动平台上运行的AIR应用程序。 对于大多数Facebook功能,我使用官方GraphAPI for Flash,版本1.8.1。
要使用该应用程序,用户必须登录Facebook,这可以通过首先调用FacebookMobile.init()轻松实现,如果它报告用户未登录,则以这样的方式登录:
var webView :StageWebView = new StageWebView();
webView.stage = stage;
webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
FacebookMobile.login(handleLoginResult, stage, new Array(), webView);
所有这些都很有效,但是注销不能按预期工作。调用
FacebookMobile.logout(handleLogout);
似乎确实从Facebook注销用户,并且handleLogout始终作为第一个参数传递 true 。在注销之后,当调用FacebookMobile.init()时,它也会正确地报告用户没有登录。所以我再次从上面调用login()方法。
然后,WebView打开,但立即自动关闭,自动登录刚刚注销的用户,而不显示任何类型的Facebook登录屏幕。但我希望能够通过输入电子邮件和密码来登录另一个用户。
可能我应该提一下,当应用程序启动时会发生注销。用户无法自行注销,应用程序在启动时会这样做,因此用户应该每次都强制登录。是的,这有一个原因;)
我确定这是某种缓存问题,但如何使用Flash / AIR解决?
答案 0 :(得分:1)
有点迟到但总比没有好吗?我在尝试使用OAUTH api之前已经看过这个问题...
在寻找单独的问题时找到了潜在的解决方案,但是关于缓存/ cookie ......
这篇文章解释了你需要做什么: http://cookbooks.adobe.com/post_Cannot_logout_from_Facebook_on_Android_devices-19254.html
基本上它不是一个非常漂亮的解决方案,但它的作用是你手动删除缓存发生的文件夹。
希望这有帮助。
答案 1 :(得分:0)
实施" reallyLogout"从这个答案中得到的类似问题对我有用: https://stackoverflow.com/a/8199505/952779
答案 2 :(得分:0)
清除Internet Explorer缓存& cookies,..它会从StageWebView facebook登录
登出更新:还可以更改描述符xml文件中的应用ID