我查了下文。它是非常相似,但它是不一样的我的问题。
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();