为什么我不能在AIR桌面应用程序中将用户从facebook中注销?

时间:2011-09-23 02:27:24

标签: flash facebook air

我正在使用Adobe Flash构建器构建一个支持facebook的AIR桌面应用程序。到目前为止它工作正常,除了一个细节,一旦用户登录,该会话保持打开,即使按下注销按钮。我的注销代码如下:

                protected function logout():void {
                   FacebookDesktop.logout(handleLogout, APP_ORIGIN);
                }

我将APP_ORIGIN设置为“http://www.facebook.com”。我检查了Adobe的文档,他们说:appOrigin:String(default = null) - (可选)为您的应用指定的网站网址。清除html窗口cookie所必需的。但我不知道这意味着什么,我的应用程序指定的'网址网址'是什么?我从哪里得到它?对不起,如果这是一个菜鸟问题。

3 个答案:

答案 0 :(得分:3)

尝试了20种不同的解决方法之后,唯一对我有用的解决方案是: http://nekyouto-tech.blogspot.de/2012/09/fb-adobe-air-logout-bug.html

var uri:String = APP_ORIGIN;
var params:URLVariables = new URLVariables();
params.next = uri;
params.access_token = FacebookDesktop.getSession().accessToken;
var req:URLRequest = new URLRequest("https://www.facebook.com/logout.php");
req.method = URLRequestMethod.GET;
req.data = params;
var netLoader:URLLoader = new URLLoader();
netLoader.load(req);
FacebookDesktop.logout(handleLogout, APP_ORIGIN);

答案 1 :(得分:1)

这对我有用

    public function facebookLogout():void {
        if (FacebookDesktop.getSession() != null) {
            var uri:String = "http://www.facebook.com/";
            var params:URLVariables = new URLVariables();
            params.next = uri;
            params.access_token = FacebookDesktop.getSession().accessToken;
            var req:URLRequest = new URLRequest("https://www.facebook.com/logout.php");
            req.method = URLRequestMethod.GET;
            req.data = params;
            var netLoader:URLLoader = new URLLoader();
            netLoader.load(req);
            FacebookDesktop.logout(handleLogout, uri);      
        }
    }

答案 2 :(得分:0)

没关系,我弄清楚了,我所做的是将我的应用程序来源定义为localhost,现在它可以正常工作。