如何从Facebook获取电子邮件信息?

时间:2013-08-19 13:16:09

标签: android facebook-android-sdk

我无法在我的应用中从Facebook收到电子邮件。我搜索了很多并且遇到了许多答案,但在我的案例中没有任何工作。我遵循相同的方法described here,但返回的值为null。下面给出的是我的代码。而且我还添加了User& Facebook应用中的朋友权限作为电子邮件。如果有人能够指出我可能正在做的错误,那将是非常有帮助的。

    private void makeMeRequest(final Session session) {
    Request request = Request.newMeRequest(session,
            new Request.GraphUserCallback() {
                @Override
                public void onCompleted(GraphUser user, Response response) {
                    if (session == Session.getActiveSession()) {
                        if (user != null) {
                            profilePictureView.setProfileId(user.getId());
                            facebook_id = String.valueOf(user.getId());
                            fullName.setText(user.getName());
                            if (user.asMap().get("email") != null)
                                email.setText(user.asMap().get("email")
                                        .toString());
                        }
                    }
                    if (response.getError() != null) {
                    }
                }
            });
    Bundle params = request.getParameters();
    params.putString("fields", "email,name");
    request.setParameters(params);
    request.executeAsync();
}

2 个答案:

答案 0 :(得分:1)

请求看起来不错。电子邮件属性null值的原因通常是email权限。

您写道:

And also I have added User & Friend permissions as email in the facebook app

facebook app是什么意思?您需要在应用中请求权限。


看看这个解决方案。我认为它可以帮到你:https://stackoverflow.com/a/18147719/334522

答案 1 :(得分:1)

根据您的需要,这可能是合适的。

我正在使用https://github.com/sromku/android-simple-facebook而不是臃肿的Facebook SDK。通过它,很容易收到电子邮件。

mSimpleFacebook.getProfile(new OnProfileRequestAdapter()
{
    @Override
    public void onComplete(Profile profile)
    {
        String id = profile.getId();
        String firstName = profile.getFirstName();
        String birthday = profile.getBirthday();
        String email = profile.getEmail();
        String bio = profile.getBio();
        // ... and many more properties of profile ...
    }
});