아무도 나를 위해 일을하지 않았다. 문제는 실제로 FacebookMobile.logout() 호출로 로그 아웃 할 때 StageWebView facebook 쿠키가 지워지지 않는다는 것입니다. 액세스 토큰을 사용하여 logout.php를로드해도 어플 리케이션에 적합한 "다음"매개 변수 값이 없기 때문에 아마도 도움이되지 못했습니다. 사람들이 localhost 또는 facebook.com을 사용하도록 제안했지만이 옵션 중 어느 것도 작동하지 않습니다.
나는 정말 의심스러운 해결책을 생각해 냈지만 지금은 효과가있다. 요점은 로그 아웃 할 때처럼 페이스 북에서 사용자를 로그 아웃하는 것입니다. 이렇게하려면 StageWebView에서 facebook.com을로드하고 로그 아웃을 클릭해야합니다. 로그 아웃 버튼은 "logout_form"html 양식의 제출 양식 항목입니다. 그래서 우리는 자바 스크립트 호출을해야합니다. 우리는 StageWebView에서
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);
}
"lksmlrsgnlskn"에 사용하는 전체 코드는 메인 페이지와 빠른로드보다 훨씬 작은 페이지 오류 얻을 그냥 어떤 임의의 쓰레기입니다.
FacebookDesktop.logout은 Facebook lib에 아직 남아있는 로컬 SharedObject 데이터를 지우는 것입니다.
트릭이 작동합니다. 기간. 공유해 주셔서 감사합니다. – benya