2012-08-22 77 views
2

似乎這個API被破壞和/或放棄,因爲在某些日子裏,這個API調用在幾個小時內總是失敗。今天再次發生,但它比以前更多時間。FacebookMobile.init()的偶爾(和經常性)問題

我不知道該怎麼做。我有2個Air應用程序,他們今天不工作。 關於這個的任何解決方案?

下面是一個簡單的代碼:

FacebookMobile.init(APP_ID, onInit); 

private function onInit(fbSession:Object, fail:Object):void 
{ 
    if (fbSession){ 
     trace(fbSession.accessToken); 
    } 
    else{ 
     traceV2(fail); // it's a "deep" trace 
     // other API methods related to login 
    } 
} 

在FacebookMobile.init(),我們必須預測某個會話對象(含有FB接取令牌),或「失敗」的對象。提前

[Object] 
| [error:Object] 
    | code = 190 
    | message = Malformed access token AAAEWSUA8XjUBAJo4JuO5hUMwSnKC95LNRr1nHHIU8rwPGzxvHIuhUcDziZA9ZC3xDf4ZBwYcqjVU1ir5wf5jlEsJ5zwyMhnnWGyWxXeKQZDZD,AAAEWSUA8XjUBAJo4JuO5hUMwSnKC95LNRr1nHHIU8rwPGzxvHIuhUcDziZA9ZC3xDf4ZBwYcqjVU1ir5wf5jlEsJ5zwyMhnnWGyWxXeKQZDZD 
    | type = OAuthException 

感謝:
的失敗對象返回這樣對我!


問題固定。 解決這個特定問題的方法是在com.facebook.graph.FacebookMobile:560,在裏面使用handleLogin()函數。

protected function handleLogin(result:Object, fail:Object):void { 
     loginWindow.loginCallback = null; 

     if (fail) { 
      loginCallback(null, fail); 
      return; 
     } 

     // ---------------||--------------------// 
     // ---------------\/--------------------// 
     // This line below solves this problem 
     result.access_token = String(result.access_token).split(',')[0]; 
     // ---------------/\-------------------// 
     // ---------------||-------------------// 


     session = new FacebookSession(); 
     session.accessToken = result.access_token; 
     session.expireDate = (result.expires_in == 0) ? null : FacebookDataUtils.stringToDate(result.expires_in) ; 

     if (_manageSession) { 
      var so:SharedObject = SharedObject.getLocal(SO_NAME); 
      so.data.accessToken = session.accessToken; 
      so.data.expireDate = session.expireDate; 
      so.flush(); 
     } 

     verifyAccessToken(); 
    } 

回答

相關問題