繁体   English   中英

Facebook Graph API未返回Gender

[英]Facebook Graph API not returning Gender

我正在使用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的问题是什么? 为什么它无法归还性别? 其他人都面临这个问题?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM