2

我正在开发一个应该在桌面和移动平台上运行的 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 解决它?

4

3 回答 3

1

有点晚了,但总比没有好,对吧?在我尝试使用 OAUTH api 之前,我已经看到了这个问题......

在寻找一个单独的问题但关于缓存/cookies 时找到了潜在的解决方案......

这篇文章解释了你需要做什么: http ://cookbooks.adobe.com/post_Cannot_logout_from_Facebook_on_Android_devices-19254.html

基本上它不是一个非常漂亮的解决方案,但它所做的是您手动删除发生缓存的文件夹。

希望这可以帮助。

于 2012-10-22T13:53:45.473 回答
0

清除 Internet Explorer 缓存和 cookie,.. 它会将您从 StageWebView facebook 登录中注销

更新:还从描述符 xml 文件中更改应用程序 ID

于 2014-10-08T11:19:51.707 回答
0

从这个答案中针对类似问题实施“reallyLogout”对我有用: https ://stackoverflow.com/a/8199505/952779

于 2014-08-26T16:43:47.483 回答