Facebook Graph API未返回Gender

问题描述 投票:0回答:1

我正在使用Facebook SDK登录用户。为了获得性别,我在权限列表中添加了user_gender权限。

List<String> accessPermissions = Arrays.asList("user_gender", "email", "user_birthday");
LoginManager.getInstance().logInWithReadPermissions(activity, accessPermissions);

之后我获得了访问令牌。现在我将此访问令牌传递给后端团队。后端团队正在使用Facebook Graph API来获取用户详细信息,如生日,性别,电子邮件等。

他们点击以下API来获取用户详细信息。

https://graph.facebook.com/me?access_token=dummyaccesstoken&fields=name,gender,birthday,email

他们能够获得电子邮件和生日等详细信息。但他们无法获得用户的性别。由于它是一个GET API,我还可以看到我们没有得到用户的性别。

但是,如果我们尝试在Android本身获取详细信息而不是将访问令牌传递给后端,那么它可以正常工作。

      GraphRequest request = GraphRequest.newMeRequest(
              loginResult.getAccessToken(),
              new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(
                    JSONObject object,
                    GraphResponse response) {
                  Log.d("Response", "response is "+response.getJSONObject().toString());
                  // Application code
                }
              });
          Bundle parameters = new Bundle();
          parameters.putString("fields", "id,name,link, gender");
          request.setParameters(parameters);
          request.executeAsync();

那么Facebook Graph API的问题是什么?为什么它无法归还性别?其他人都面临这个问题?

android facebook-graph-api facebook-login facebook-graph-api-v2.0
1个回答
0
投票
List<String> accessPermissions = Arrays.asList("user_gender", "email", "user_birthday");
LoginManager.getInstance().logInWithReadPermissions(activity, accessPermissions);

write instead of user_gender and email and user_birthday   

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email"));

and write the Bundle request params

 Bundle parameters = new Bundle();
        parameters.putString("fields", "id,name,email,gender,birthday");
        request.setParameters(parameters);
        request.executeAsync();
© www.soinside.com 2019 - 2024. All rights reserved.