2011-09-23 30 views
0

我正在使用Adobe Flash Builder構建一個帶有Facebook支持的AIR桌面應用程序。到目前爲止,它工作正常,除了一個細節外,一旦用戶登錄,該會話保持打開狀態,即使按下注銷按鈕。我的退出代碼如下所示:爲什麼我無法在AIR桌面應用程序中將用戶從Facebook註銷?

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

我將APP_ORIGIN設置爲「http://www.facebook.com」。我檢查了Adobe的文檔,他們說:appOrigin:String(default = null) - (可選)爲您的應用指定的網站url。清除html窗口cookie是必需的。但我不知道這意味着什麼,'我的應用程序指定的網站網址'是什麼?我在哪裏得到它?對不起,如果這是一個noob問題。

回答

0

沒關係,我弄明白了,我所做的是將我的應用程序起源定義爲localhost,現在它可以工作。

+0

我遇到過的問題,爲什麼我必須提供APP_OGIRIN? – Alon

+0

我不確定爲什麼,但是如果您不會清除會話cookie,並且用戶不會被註銷。我解決它的方式(用於桌面)是使用這個應用程序的來源: – Samssonart

+0

受保護的靜態常量APP_ORIGIN:String =「http:// localhost:8181 /」; – Samssonart

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

這是與註銷工作對我來說

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);  
     } 
    } 
相關問題