首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >As3图形接口注销

As3图形接口注销
EN

Stack Overflow用户
提问于 2011-01-28 20:13:20
回答 3查看 2.3K关注 0票数 2

我正在开发一个应用程序,该应用程序将由different的用户使用,但我将使用as3图形api对用户进行身份验证并在他们的墙上发帖,我需要注销每个用户,然后下一个用户才能开始他在as3图形api上的会话:http://code.google.com/p/facebook-actionscript-api/

我搜索以强制FB询问登录信息,但在再次登录时注销后,API跳过这一步骤并在最后一次用户会话中进行记录。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-20 12:49:15

这个问题已经被FacebookMobile、Facebook和FacebookDesktop不断修正了。基本上,您需要确保设置FacebookDesktop.manageSession = false;并传入第二个参数"logout“您站点的api url。If that doesn't work, the other method is to use "reallyLogout", as detailed here in this thread

注释#24中的注释详细介绍了如何从FacebooMobile (或您正在使用的任何单例)中暴露访问令牌,然后使用访问令牌手动调用Facebook上的logout.php方法。

http://code.google.com/p/facebook-actionscript-api/issues/detail?id=297#c24

票数 1
EN

Stack Overflow用户

发布于 2012-05-27 04:39:48

我在网上看到的解决方案都没有对我起作用。问题确实在于StageWebView facebook cookie在使用FacebookMobile.logout()调用注销时没有被清除。使用访问令牌加载logout.php对我没有帮助,可能是因为air应用程序没有“下一个”参数值。我看到人们建议使用本地主机或facebook.com,但这些选项都不起作用。

我已经想出了一个非常值得怀疑的解决方案,但目前它是有效的。重点是在facebook中注销用户,就像他自己注销一样。为此,我们需要在StageWebView中加载facebook.com并单击注销。注销按钮是"logout_form“html表单的提交表单项。所以我们需要做一个javaScript调用

代码语言:javascript
复制
document.getElementById('logout_form').submit();

在我们的StageWebView中。我们可以通过调用

代码语言:javascript
复制
webView.loadURL("javascript:document.getElementById('logout_form').submit();");

在ActionScript中。

我现在使用的完整代码

代码语言:javascript
复制
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);
}

"lksmlrsgnlskn“只是一些随机垃圾,用来访问比主页小得多、加载速度更快的错误页面。

FacebookDesktop.logout将清除Facebook lib可能仍然拥有的任何本地SharedObject数据。

票数 2
EN

Stack Overflow用户

发布于 2011-11-14 22:59:15

这是cookie的问题,我的意思是,第一个用户会话仍然存在,当您按下登录时,API将登录第一个用户。

我不知道为什么,但是facebook的Api注销方法不要将用户从Facebook注销,只将用户从您的应用程序中注销。

如果您找到了解决方案或有其他想法,请让我知道,这样我们就可以得到解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4828072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档