如果帐户有多个电子邮件已注册,如何从facebook获取主电子邮件?
我的登录按钮有这个方法:
private void onClickLogin() {
session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(new Session.OpenRequest(this).setPermissions(Arrays.asList("public_profile", "email")).setCallback(statusCallback));
} else {
Session.openActiveSession(this, true, statusCallback);
}
}
并点击此方法获取详细信息:
public void onClick(View v) {
session = Session.getActiveSession();
if (session == null) {
Toast.makeText(HelloFacebookSampleActivity.this, "NULL NULL NULL NIGGA NULL!!", Toast.LENGTH_SHORT).show();
} else {
Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
Toast.makeText(HelloFacebookSampleActivity.this, buildUserInfoDisplay(user), Toast.LENGTH_SHORT).show();
}
}
}).executeAsync();
}
}
这里是buildUserInfoDisplay方法:
private String buildUserInfoDisplay(GraphUser user) {
StringBuilder userInfo = new StringBuilder("");
userInfo.append(String.format("First Name: %s\n\n", user.getFirstName()));
userInfo.append(String.format("Last Name: %s\n\n", user.getLastName()));
userInfo.append(String.format("Birthday: %s\n\n", user.getBirthday()));
userInfo.append(String.format("Email1: %s\n\n", (String) user.getProperty("email")));
userInfo.append(String.format("Email2: %s\n\n", user.getProperty("email")));
userInfo.append(String.format("Locale: %s\n\n", user.getProperty("locale")));
return userInfo.toString();
}
我得到姓名和地址,但电子邮件和生日我不知道。
不确定我做错了什么。谢谢。
解答:
所以答案就是重新安装应用程序。 -_-
答案 0 :(得分:1)
API仅在电子邮件字段中返回一个电子邮件地址,该地址将是主电子邮件。如果用户有多封电子邮件,则仅返回主电子邮件。如果没有主电子邮件,或者未验证主电子邮件,则不会返回该字段。请注意,您的应用还必须拥有电子邮件权限。
请参阅https://developers.facebook.com/docs/graph-api/reference/v2.0/user
上的文档