我正试图从用户那里得到生日,但我收到了这个错误:
06-01 17:43:05.683:W / System.err(15173):org.json.JSONException:No 生日值
我尝试使用两个帐户登录我的应用程序,我只能从第一个帐户获得生日。
我的代码:
loginButton = (LoginButton) findViewById(R.id.login_button);
List<String> permissionNeeds = Arrays.asList("user_photos", "email", "user_birthday");
loginButton.setReadPermissions(permissionNeeds);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>()
{
@Override
public void onSuccess(LoginResult loginResult)
{
System.out.println("onSuccess");
GraphRequest request = GraphRequest.newMeRequest
(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback()
{
@Override
public void onCompleted(JSONObject object,
GraphResponse response) {
// TODO Auto-generated method stub
// Application code
Log.v("LoginActivity", response.toString());
//System.out.println("Check: " + response.toString());
try
{
String id = object.getString("id");
String name = object.getString("name");
String email = object.getString("email");
String gender = object.getString("gender");
String birthday = object.getString("birthday");
String getgender = "";
if(getgender.equals("male")){
getgender = "2";
}else{
getgender = "1";
}
facebookLogin(email, name, getgender);
Log.e("", birthday);
}
catch (JSONException e)
{
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender,birthday");
request.setParameters(parameters);
request.executeAsync();
}
感谢。
答案 0 :(得分:0)
这基本上是因为你需要让Facebook审查获得用户b'day的许可。您可以访问您的b'date但不能访问其他人。
参考此链接
developer.facebook.com
在你的facebook仪表板上转到评论中的项目,然后从那里添加权限和Facebook验证将开始之后,您将能够获得用户b'date 截图]
答案 1 :(得分:0)
在这种情况下,您必须检查json是否包含值。
JSONObject jObj = new JSONObject(json);
if(jObj.has("birthday"){
birthday = jObj.getString("birthday");
}