从facebook获取电子邮件和生日

时间:2014-07-01 16:28:54

标签: android facebook facebook-graph-api android-facebook

如果帐户有多个电子邮件已注册,如何从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();
}

我得到姓名和地址,但电子邮件和生日我不知道。

不确定我做错了什么。谢谢。

解答:

所以答案就是重新安装应用程序。 -_-

1 个答案:

答案 0 :(得分:1)

API仅在电子邮件字段中返回一个电子邮件地址,该地址将是主电子邮件。如果用户有多封电子邮件,则仅返回主电子邮件。如果没有主电子邮件,或者未验证主电子邮件,则不会返回该字段。请注意,您的应用还必须拥有电子邮件权限。

请参阅https://developers.facebook.com/docs/graph-api/reference/v2.0/user

上的文档