Facebook api在openActiveSession期间挂在"Opening"

Tyl*_*ear 3 android facebook

我可以第一次登录.我有一个选项,用户可以在Android应用程序中禁用Facebook.选择此项后,facebook状态将变为CLOSED.当我再次使用该选项时,要在API中重新登录,请在回调函数中的OPENING处挂起.

根据我发现第一次调用的例子

session.openForRead(new Session.OpenRequest(activity).setCallback(statusCallback));
Run Code Online (Sandbox Code Playgroud)

第二个用途

Session.openActiveSession(activity, true, statusCallback);
Run Code Online (Sandbox Code Playgroud)

回调函数如下所示:

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

vid*_*ida 8

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

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