我正在尝试获取 facebook 用户的一些个人资料信息,例如姓名、电子邮件、生日和位置。我无法获取用户的生日。
callbackManager = CallbackManager.Factory.create();
loginManager=LoginManager.getInstance();
loginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
accessToken = AccessToken.getCurrentAccessToken();
getProfileInformationFacebook(accessToken);
Log.e("login res", loginResult.toString());
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
读取权限:
loginManager.logInWithReadPermissions(this,
Arrays.asList("user_about_me", "user_birthday", "user_location", "email"));
图形 API 请求:
public void getProfileInformationFacebook(AccessToken accToken) {
GraphRequest request = GraphRequest.newMeRequest(
accToken,
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
Log.e("object", object.toString());
String fbId = null;
String fbBirthday = null;
String fbLocation = null;
String fbEmail = null;
String fbName = null;
try {
fbId = object.getString("id");
fbEmail = object.getString("email");
fbName = object.getString("name");
fbBirthday = object.getString("birthday");
JSONObject jsonObject = object.getJSONObject("location");
fbLocation = jsonObject.getString("name");
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,location,birthday");
request.setParameters(parameters);
request.executeAsync();
图形 API 响应:
{"id":"10153618779823958","email":"wishygupta@yahoo.com","name":"Wishy Gupta"}
这里是不是少了什么?
最佳答案
默认情况下,Facebook 不会给用户生日。您必须使用扩展权限并将您的应用提交给 facebook 进行审核才能获取用户的生日。 p>
看这里:
https://developers.facebook.com/docs/facebook-login/permissions/v2.4
关于android - 无法获取 FB 用户生日,android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32475977/