Nao*_*der 3 permissions android facebook facebook-login facebook-sdk-4.0
我从Facebook 4.0 SDK 实现了LoginButton.登录和注销工作正常.
现在我想设置"user_friends"权限 LoginButton.setReadPermissions(Arrays.asList("user_friends"));
但似乎这行代码被忽略了?当我使用getAccessToken().getPermissions();i 成功登录后读取权限时,只有"basic_info"权限.
如果我使用LoginManager.getInstance().logInWithReadPermissions( HighscoreFragment.this, Arrays.asList("user_friends") );,我获得正确的权限.但我想使用LoginButton.
那么在登录时实现LoginButton并设置所需权限的正确方法是什么?
这是我的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_highscore, container, false);
mLoginButton = (LoginButton) view.findViewById(R.id.login_button);
mLoginButton.setReadPermissions(Arrays.asList("user_friends"));
mLoginButton.setFragment(this);
// Callback registration
mLoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i(TAG, "LOGIN SUCCESFUL");
Log.i(TAG, loginResult.getAccessToken().getPermissions().toString());
AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (accessToken != null) {
if(accessToken.getPermissions().contains("user_friends"))
fetchScoreboardEntries();
}
}
@Override
public void onCancel() {
Log.i(TAG, "LOGIN CANCEL");
}
@Override
public void onError(FacebookException exception) {
Log.i(TAG, "LOGIN ERROR");
}
});
Run Code Online (Sandbox Code Playgroud)
我认为你的问题是这样的:
basic_info许可)user_friends使用LoginButton 更改了要求的代码我已将此识别为SDK中的错误,我们将在即将发布的版本中修复它.
当您正在开发时,当前的解决方法是在进行LoginButton更改时取消授权您的应用程序(从您的Facebook设置).这样,它将使您的访问令牌无效,并且在您下次登录时,您应该user_friends在权限对话框中看到.如果您在应用更新之间更改权限数组,这应该只是一个问题.
| 归档时间: |
|
| 查看次数: |
3510 次 |
| 最近记录: |