1

我正在开发一个 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,但它不起作用。

我究竟做错了什么?

4

1 回答 1

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));

如果您对此有任何问题,请告诉我。

于 2013-06-27T09:11:00.717 回答