1

我无法在我的应用程序中接收来自 Facebook 的电子邮件。我用谷歌搜索了很多,并找到了很多答案,但在我的情况下没有任何效果。我遵循此处描述的相同方法,但返回的值为 null。下面给出的是我的代码。而且我还在 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();
}
4

2 回答 2

1

请求看起来没问题。电子邮件财产价值的原因null通常是缺乏email许可。

你写了:

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

你说的脸书应用是什么意思?您需要在您的应用程序中请求权限。


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

于 2013-08-19T17:22:18.023 回答
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 ...
    }
});
于 2013-08-23T17:18:24.193 回答