0

我在这个问题上纠结了一段时间。我想在用户使用 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 中的“电子邮件”...

有任何想法吗?

4

1 回答 1

0

尝试这个:

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

上面的代码应该做的是GraphUser把它变成一个Java Collections Map. 现在,您使用参数调用get()它的方法,该"email"参数将通过 Map 查找电子邮件字段并返回一个(如果存在)。有关更多信息,请参考此链接GraphObjects和这个类似的问题有关如何获取用户电子邮件的更多信息。

于 2013-06-01T22:56:56.190 回答