私は私のために動作しなかった、ウェブ上で見ているソリューションのなし。 FacebookMobile.logout()コールでログアウトしてもStageWebViewのfacebook cookieがクリアされないという問題があります。アクセストークンを使用してlogout.phpを読み込んでも、おそらく役に立たなかったのは、エアアプリケーションの「次の」パラメータ値が意味をなさないためです。私は人々がlocalhostまたはfacebook.comを使用するように提案しているのを見ましたが、これらのオプションのどれも働かなかった。
私は本当に疑わしい解決策を考え出しましたが、今のところうまくいきます。 ポイントは、彼自身のログアウトのように、通常はfacebookでユーザーをログアウトすることです。これを行うには、StageWebViewでfacebook.comを読み込み、ログアウトをクリックする必要があります。 「ログアウト」ボタンは、「logout_form」HTMLフォームの送信フォーム項目です。したがって、私たちはStageWebViewでJavaScript呼び出しを行う必要があります。
document.getElementById('logout_form').submit();
ActionScriptでこれを行うには、
webView.loadURL("javascript:document.getElementById('logout_form').submit();");
をActionScriptで実行します。
私は今
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データをすべて消去することです。
このトリックは機能します。期間。共有してくれてありがとう。 – benya