Facebook api在openActiveSession期间挂在“Opening”

时间:2013-03-04 05:03:23

标签: android facebook

我可以第一次登录。我有一个选项,用户可以在Android应用程序中禁用Facebook。选择此项后,facebook状态将变为CLOSED。当我再次使用该选项时,要在API中重新登录,请在回调函数中的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());
    }
}

1 个答案:

答案 0 :(得分:8)

我不确定我们是否有确切的问题,但我的facebook的会话状态在Session.openActiveSession(activity, true, statusCallback);之后保留“打开”。我已经覆盖了片段中的onActivityResult()。我为解决这个问题所做的是改写我的Activity上的方法。

相关答案:https://stackoverflow.com/a/13888652/782870