Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SDK 3.0:openForRead返回AccessToken,尽管用户已吊销应用程序的权限_Android_Facebook Android Sdk_Facebook Access Token - Fatal编程技术网

Android SDK 3.0:openForRead返回AccessToken,尽管用户已吊销应用程序的权限

Android SDK 3.0:openForRead返回AccessToken,尽管用户已吊销应用程序的权限,android,facebook-android-sdk,facebook-access-token,Android,Facebook Android Sdk,Facebook Access Token,我的FB集成非常简单。为了注册和登录用户,我只需要通过SDK获得FB令牌,然后将其交给我的服务器。我的应用程序中没有其他图形调用等。一切都是从服务器上完成的。 我使用下面的静态类来获得它,这很好。除了用户撤销对FB主页上应用程序的访问外,我仍然获得旧的访问令牌,我的服务器显然无法再使用 我是否可以强制SDK为我获取一个有效令牌,并在必要时再次向用户请求权限 public static void getAccessToken(Fragment fragment, final FacebookTok

我的FB集成非常简单。为了注册和登录用户,我只需要通过SDK获得FB令牌,然后将其交给我的服务器。我的应用程序中没有其他图形调用等。一切都是从服务器上完成的。 我使用下面的静态类来获得它,这很好。除了用户撤销对FB主页上应用程序的访问外,我仍然获得旧的访问令牌,我的服务器显然无法再使用

我是否可以强制SDK为我获取一个有效令牌,并在必要时再次向用户请求权限

public static void getAccessToken(Fragment fragment, final FacebookTokenListener listener) {
        Session currentSession = Session.getActiveSession();
        if (currentSession == null || currentSession.getState().isClosed()) {
            Session session = new Session.Builder(fragment.getActivity()).setApplicationId(
                    fragment.getString(R.string.facebook_app_id)).build();
            Session.setActiveSession(session);
            currentSession = session;
        }
        if (!currentSession.isOpened()) {
            Session.OpenRequest openRequest = null;
            openRequest = new Session.OpenRequest(fragment);

            if (openRequest != null) {
                openRequest.setPermissions(Configuration.FB_PERMISSIONS);
                openRequest.setCallback(new StatusCallback() {

                    @Override
                    public void call(Session session, SessionState state, Exception exception) {
                        Log.d(TAG, "call " + session.getAccessToken() + " , state: " + state.name() + " ,exception: "
                                + (exception == null ? "null" : exception.getMessage()));
                        if (session.isOpened()) {
                            Log.d(TAG, "fb token: " + session.getAccessToken());
                            listener.onAccessTokenReceived(session.getAccessToken());
                        }
                    }
                });
                currentSession.openForRead(openRequest);
            }
        } else {
            Log.d(TAG, "fb token: " + currentSession.getAccessToken());
            listener.onAccessTokenReceived(currentSession.getAccessToken());
        }
    }