我现在一直在使用Facebook SDK for Android。我的一位测试人员无法使用Facebook在我的应用中创建帐户时遇到了麻烦。经过一些调试后,我发现由于某种原因,当他试图登录/注册包含该信息的JSON对象时,他的电子邮件没有。这只适用于HIS帐户!
有谁知道为什么会发生这种情况?
(我已经包含了我的登录代码的简化版本,因此您可以查看它是否存在任何可能导致错误的错误)
List<String> permissionNeeds = Arrays.asList("public_profile", "user_friends", "email");
loginButton.setReadPermissions(permissionNeeds);
loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
Log.d(TAG, object.toString()); // Has no email sometimes!
} catch (JSONException e) {
e.printStackTrace();
Log.e(TAG, String.format("Error with facebook login: %s", e.getMessage()));
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,picture,email,gender");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
Log.d(TAG, String.format("Error with facebook login: %s", error.getMessage()));
}
});
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoginManager.getInstance().logInWithReadPermissions(SplashActivity.this,
Arrays.asList("public_profile", "user_friends", "email"));
}
});
如果需要更多信息,请告诉我,我很乐意添加一些信息。
谢谢!
答案 0 :(得分:0)
事实证明我的测试人员有一个非活动的电子邮件帐户。
一般情况下,您永远不应指望每个拥有电子邮件地址的Facebook用户。