android - 使用新的 Facebook Android SDK 访问用户电子邮件

标签 android facebook-android-sdk

您好,我正在使用新的 Facebook Android SDK。我不知道的一件事是我如何要求电子邮件地址。我尝试了以下操作,但它返回了除电子邮件地址之外的所有字段的值。我想我可能需要单独请求电子邮件地址的许可,但不确定如果我使用 LoginFragment 该怎么做。

Request request = Request.newMeRequest(session, new GraphUserCallback() {

    @Override
    public void onCompleted(GraphUser user, Response response) {
        profilePictureView.setUserId(user.getId());
        userNameView.setText(user.getName());
    }
});

String NAME = "name";
String ID = "id";
String PICTURE = "picture";
String EMAIL = "email";
String FIELDS = "fields";
String REQUEST_FIELDS = TextUtils.join(",", new String[] {
    ID, NAME, PICTURE, EMAIL
});

Bundle parameters = new Bundle();
parameters.putString(FIELDS, REQUEST_FIELDS);
request.setParameters(parameters);
Request.executeBatchAsync(request);

感谢任何帮助。 谢谢

最佳答案

执行以下操作:

如上设置权限后,通过以下方式访问电子邮件: user.asMap().get("email"));

请看下面的例子

@Override
protected void onSessionStateChange(SessionState state, Exception exception) {

    // user has either logged in or not ...
    if (state.isOpened()) {
        // make request to the /me API
        Request request = Request.newMeRequest(this.getSession(),
                new Request.GraphUserCallback() {
                    // callback after Graph API response with user object

                    @Override
                    public void onCompleted(GraphUser user,
                            Response response) {
                        // TODO Auto-generated method stub
                        if (user != null) {
                            TextView etName = (TextView) findViewById(R.id.etName);

                            etName.setText(user.getName() + ","
                                    + user.getUsername() + ","
                                    + user.getId() + "," + user.getLink()
                                    + "," + user.getFirstName()+ user.asMap().get("email"));

                        }
                    }
                });
        Request.executeBatchAsync(request);
    }
}

关于android - 使用新的 Facebook Android SDK 访问用户电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13205517/

相关文章:

android - 当 CursorLoader 的构造函数不支持时,如何在 CursorLoader 中使用连接查询

java - 为什么我在尝试将 JSON 数据加载到 RecyclerView 时收到 NullPointerException?

java - Android Facebook 分享不显示在 facebook 墙上的描述

android - 如何从 Facebook 获取用户的 friend 头像(头像)

android - Facebook Graph API 调用未检索所有字段

android - Activity 弹出而不是在堆栈上添加一个新的

android - 内联图标链接在(某些)Android 设备上有奇怪的行为

android - Facebook Android SDK - 应用程序请求不会重定向到 Google Play 商店

android - 如何使我的代码安全并防止反编译?

java - 如何在 Android 中创建固定操作栏并在其下方启动新 Activity