无法获得FB用户生日,android?
Posted
技术标签:
【中文标题】无法获得FB用户生日,android?【英文标题】:Unable to get FB user birthday, android? 【发布时间】:2015-09-09 09:33:25 【问题描述】:我正在尝试获取 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"
这里有什么遗漏吗?
【问题讨论】:
【参考方案1】:Facebook 默认不给用户生日。您必须使用扩展权限并将您的应用提交给 Facebook 审核才能访问用户的生日。 p>
看这里:
https://developers.facebook.com/docs/facebook-login/permissions/v2.4
【讨论】:
这就是问题所在。因为之前他们曾经提供过生日。以上是关于无法获得FB用户生日,android?的主要内容,如果未能解决你的问题,请参考以下文章