如何重新问拒绝权限的Facebook SDK 4.0(安卓)权限、Facebook、SDK

2023-09-07 08:40:26 作者:施主別撕、贫僧自己脱

我查了下文。它是非常相似,但它是不一样的我的问题。

I checked below. It is very similar but it is not same my problem.

How重新请求权限的Facebook SDK 4.0

我在code得到的权限。

I got permissions in this code.

LoginManager.getInstance().logInWithReadPermissions(*fragment*, "user_friends");

如果用户拒绝user_friends的权限,我不能再要求高于codeuser_friends权限。由于自动拒绝对明年的认证。

If a user reject "user_friends" permission, I can't re-ask "user_friends" permissions above code. Because automatically rejected on next authentication.

什么行动,我应该做的就是user_friends编程?

What actions should I do to get "user_friends" programmatically?

推荐答案

其简单的只是用

LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.e(TAG, "LoginManager FacebookCallback onSuccess");

            if (loginResult.getAccessToken() != null) {
                Set<String> deniedPermissions = loginResult.getRecentlyDeniedPermissions();

                if (deniedPermissions.contains("user_friends")) {

                    LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("user_friends"));

                }
            }
        }

        @Override
        public void onCancel() {
            Log.e(TAG, "LoginManager FacebookCallback onCancel");
        }

        @Override
        public void onError(FacebookException e) {
            Log.e(TAG, "LoginManager FacebookCallback onError");
        }
    });

和不要忘记你打电话的setContentView之前初始化FB SDK(R.layout.main) 即

and do not forget to initialize fb SDK before you call setContentView(R.layout.main) i.e

// Create callback manager to handle login response
    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();