2013-03-04 36 views
3

我可以在第一次登錄。我有一個選項,用戶可以在android應用程序中禁用Facebook。當選擇這個時,Facebook的狀態將變爲CLOSED。當我再次使用該選項時,重新登錄API在回調函數中的OPENING處掛起。Facebook api掛在openActiveSession期間的「Opening」中

%的例子,我發現第一個呼叫使用

session.openForRead(new Session.OpenRequest(activity).setCallback(statusCallback)); 

第二個使用

Session.openActiveSession(activity, true, statusCallback); 

回調函數如下:

private static class SessionStatusCallback implements Session.StatusCallback { 
    // callback when session changes state 
    @Override 
    public void call(Session session, SessionState state, Exception exception) { 
     if (session.isOpened()) { 
      // make request to the /me API 
      Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 
       // callback after Graph API response with user object 
       @Override 
       public void onCompleted(GraphUser user, Response response) { 
        if (user != null) { 
         GlobalVars.setUser(user.getName()); 
         SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(GlobalVars.getContext()); 
         Editor editor = prefs.edit(); 
         editor.putBoolean("facebook", true); 
         editor.commit(); 
         System.out.println("facebook logged in"); 
        } 
       } 
      }); 
     } 
     System.out.println("facebook session state callback " + session.getState().toString()); 
    } 
} 
+0

我目前有同樣的問題。無法打開會話。它顯示永遠加載。當我退出時,它說我取消了它。幾天前相同的代碼工作。似乎對我來說是一個臉書問題。 – 2013-03-04 08:40:01

回答

8

我不知道我們是否有確切的問題,但我的臉書的會話狀態保留「開放」後Session.openActiveSession(activity, true, statusCallback);。我已經覆蓋了我的片段中的onActivityResult()。我做了什麼來解決這個問題,而是重寫我的Activity上的方法。

相關回復:https://stackoverflow.com/a/13888652/782870