添加电子邮件权限到Facebook

时间:2013-06-01 21:43:50

标签: java android facebook permissions

我一直在争论这个问题。我希望在使用Facebook登录按钮后阅读用户的电子邮件。这是我的代码

loginButton.setReadPermissions(Arrays.asList("email"));
loginButton.setSessionStatusCallback(new Session.StatusCallback() {

        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            if (session.isOpened()) {
                Log.i(TAG, "Access Token: " + session.getAccessToken());
                Request.executeMeRequestAsync(session,
                        new Request.GraphUserCallback() {
                            @Override
                            public void onCompleted(GraphUser user,
                                    Response response) {
                                if (user != null) {
                                                    Log.d(TAG,
                                            ""
                                                    + user.asMap().get("email")
                                                    + " is connected using facebook");

                                }
                            }
                        });
            }
        }
    });

但在批准该应用时,我甚至都没有被要求提供电子邮件许可。因此,我没有在用户JSON ...

中收到“email”

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

user.asMap().get("email");

上面的代码应该是GraphUser并将其转换为Java Collections Map。现在,您使用get()参数调用"email"方法,该参数将在地图中查找电子邮件字段并返回一个(如果存在)。有关GraphObjects的更多信息,请Reference this linkAnd this similar question了解有关如何获取用户电子邮件的详细信息。