使用最新的Facebook SDK获取Facebook用户电子邮件

时间:2013-06-27 07:41:56

标签: android facebook

我正在开发一个Android应用程序,我正在使用此代码从Facebook获取一些数据:

public void onFBLoginClick(View view)
{
    // start Facebook Login
    Session.openActiveSession(this, true, new Session.StatusCallback()
    {
        // callback when session changes state
        @Override
        public void call(final Session session, SessionState state, Exception exception)
        {
            if (session.isOpened())
            {
                // make request to the /me API
                Request.executeMeRequestAsync(session, new Request.GraphUserCallback()
                {
                    // callback after Graph API response with user object
                    @Override
                    public void onCompleted(GraphUser user, Response response)
                    {
                        if (user != null)
                        {
                            txtUserName.setText(session.getAccessToken());

                            saveUserData(user.getId(), user.getName(), user.getBirthday(), user.asMap().get("email").toString());
                            saveAccessToken(session.getAccessToken());

                            getFacebookUserProfilePicture(session.getAccessToken());
                        }
                    }
                });
            }
        }
    });
}

但是,我无法收到电子邮件。始终为空。

我在developers.facebook.com上的email设置了User & Friend Permissions权限,但它不起作用。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

使用此代码打开您的会话,您就可以开始了!

String[] PERMISSION_ARRAY_READ = {"email","user_birthday"};
List<String> PERMISSION_LIST=Arrays.asList(PERMISSION_ARRAY_READ);
session.openForRead(new Session.OpenRequest(getParent()).setPermissions(PERMISSION_LIST).setCallback(statusCallback));

如果您对此有任何疑问,请与我联系。