尝试打开用户的Facebook页面时收到this错误消息。奇怪的是,如果我与该用户有共同朋友,则该页面加载不会有问题,但我没有认为这是默认行为,否则我无法理解user_link
权限的含义。
Facebook已批准user_link
的权限,并且我通过了应用审核。
从开发者帐户中,我将应用程序调用的API版本更改为v3.1
。
我获得user_link
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("user_gender", "user_link"));
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
makeGraphRequest(loginResult.getAccessToken());
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
public void makeGraphRequest(AccessToken token) {
GraphRequest request = GraphRequest.newMeRequest(
token, (object, response) -> {
try {
userStorage.setUserProfileUrl(object.getString(AppConstants.LINK));
} catch (JSONException e) {
e.printStackTrace();
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "name,gender,link,picture.width(700).height(700)");
request.setParameters(parameters);
request.executeAsync();
}
并使用this答案打开页面。
Intent intent;
try {
context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href=" + currentUser.getLink()));
context.startActivity(intent);
} catch (Exception e) {
intent = new Intent(context, FacebookWebViewActivity.class);
intent.putExtra(AppConstants.USER_LINK, currentUser.getLink());
context.startActivity(intent);
}
build.gradle
implementation 'com.facebook.android:facebook-login:4.33.0'
如果有人可以提出任何解决方案,我将非常感激。在Facebook新API版本发布之前,我也遇到了这个问题。
答案 0 :(得分:3)
答案 1 :(得分:1)
https://developers.facebook.com/docs/graph-api/changelog/version3.0#login
...以下属于public_profile的字段已弃用...
正如您可以在更改日志中看到的那样,不推荐使用“链接”和“性别”字段。
修改:但他们引入了新权限user_link
和user_gender
,以便用户可以明确询问这些特定字段。 (感谢CBroe指出这一点)