作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个将由不同用户播放的应用程序,但我正在使用 as3 graph api 来验证用户并在他们的墙上发帖,我需要注销每个用户,然后下一个用户在 as3 graph 上开始他的 session 接口(interface):
http://code.google.com/p/facebook-actionscript-api/
我搜索强制 FB 询问登录信息,但在再次登录时注销后,API 跳过该步骤并在最后一个用户 session 中登录。
最佳答案
我在网上看到的所有解决方案都不适合我。问题确实是 StageWebView facebook cookie 在使用 FacebookMobile.logout() 调用注销时没有被清除。使用访问 token 加载 logout.php 可能对我没有帮助,因为空中应用程序没有有意义的“下一个”参数值。我看到有人建议在那里使用 localhost 或 facebook.com,但这些选项都不起作用。
我想出了一个非常有问题的解决方案,但它现在有效。
关键是通常在 facebook 中注销用户,就像他自己注销一样。为此,我们需要在 StageWebView 中加载 facebook.com 并单击注销。注销按钮是“logout_form” html 表单的提交表单项。所以我们需要进行一个javascript调用
document.getElementById('logout_form').submit();
webView.loadURL("javascript:document.getElementById('logout_form').submit();");
protected var _logoutAttemptInProgress:Boolean = false;
public function fbLogout():void{
if(!_isLoggedIn) return;
if(_logoutAttemptInProgress) return;
_logoutAttemptInProgress = true;
var webView:StageWebView = new StageWebView();
webView.viewPort = new Rectangle(-1, 0, 1, 1);
webView.stage = this.stage;
webView.loadURL("http://www.facebook.com/lksmlrsgnlskn");
webView.addEventListener(Event.COMPLETE, runLogoutJs);
function runLogoutJs(event:Event):void{
webView.removeEventListener(Event.COMPLETE, runLogoutJs);
var jsString:String = "document.getElementById('logout_form').submit();";
webView.loadURL("javascript:"+jsString);
webView.addEventListener(Event.COMPLETE, closeWebView);
}
function closeWebView(event:Event):void{
webView.removeEventListener(Event.COMPLETE, closeWebView);
webView.stage = null;
webView.dispose();
_isLoggedIn = false;
_logoutAttemptInProgress = false;
}
FacebookDesktop.logout(null, APP_ORIGIN);
}
关于apache-flex - As3 图形 API 注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828072/
我是一名优秀的程序员,十分优秀!