Facebook动作api注销无法在移动设备上运行

时间:2011-11-08 11:47:10

标签: facebook actionscript-3 adobe

我有一个adobe air应用程序。我刚刚在其中添加了facebook功能。

我的问题是用户可以正常登录并开展活动。

按照我用于注销的代码:

protected function logout(callback:Function = null,appOrigin:String = null):void {             this.logoutCallback = callback;

        //clears cookie for mobile.
        var params:Object = {};
        params.confirm = 1;
        params.next = appOrigin;
        params.access_token = accessToken;
        var req:FacebookRequest = new FacebookRequest();

        openRequests[req] = handleLogout;
        req.call("https://m.facebook.com/logout.php", "GET" , handleRequestLoad, params);

        var so:SharedObject = SharedObject.getLocal(SO_NAME);
        so.clear();
        so.flush();

        session = null;
    }

我正在通过“https://www.facebook.com/”作为appOrigin

但注销功能无效。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

默认注销功能似乎无法通过FacebookMobile动作脚本API正确清除Cookie。 comment #33 here中的解决方案为我工作,转载于此。请务必在您自己的APP_ID中填写:

function logout(e:MouseEvent):void {
  FacebookMobile.logout(onLogout, "https://m.facebook.com/dialog/permissions.request?app_id=APP_ID&display=touch&next=http%3A%2F%2Fwww.facebook.com%2Fconnect%2Flogin_success.html&type=user_agent&perms=publish_stream&fbconnect=1");
}

function onLogout(result:Object):void
{
  trace("Perfect Log Out!")
}

答案 1 :(得分:0)

我为iOS移动应用做了类似的事情。我刚刚创建了一个字符串,类似于上一个答案中的字符串,并将回调添加到FacebookMobile.logout()

有趣的是,这似乎会让您退出应用程序,但访问令牌保持不变;至少在我测试它的短时间内,但它确实每次强制重新登录。