从Facebook获取用户性别

时间:2015-02-15 01:16:17

标签: android facebook facebook-graph-api sdk

我尝试使用适用于Android的facebook sdk来获取用户的性别。我正在使用parse登录/注册,因此我可以访问所有用户ID和访问令牌。当我尝试创建一个新的HTTP GET请求时,我只能获取我的信息 - 但我需要[user_x]的信息。如果我使用Graph API Explorer它可以正常工作,但在代码中它不起作用。这是我的一些代码:

登录:

 List<String> permissions = Arrays.asList("email","basic_info", "user_about_me", "user_location", "public_profile");
        ParseFacebookUtils.logIn(permissions, this, new LogInCallback() {
            @Override
            public void done(ParseUser user, ParseException e) {
                if (user == null) {
                    Toast.makeText(getApplicationContext(), "Uh Oh. The user cancelled the Facebook login.", Toast.LENGTH_SHORT).show();
                } else if (user.isNew()) {
                    Toast.makeText(getApplicationContext(), "User's like new or something.", Toast.LENGTH_SHORT).show();

                    try {
                        user.put("facebookId", currentUser.getJSONObject("authData").getJSONObject("facebook").get("id").toString());
                        user.put("access_token", currentUser.getJSONObject("authData").getJSONObject("facebook").get("access_token").toString());
                        user.save();
                    } catch(Exception ex) {
                        Log.e("Nope", ex.toString());
                    }

                    login();
                } else {
                    Toast.makeText(getApplicationContext(), "User just like logged in or something", Toast.LENGTH_SHORT).show();
                    login();
                }
            }
        });

请求:

/* make the API call */
                new Request(
                        ParseFacebookUtils.getSession(),
                        "/1376286562687763",
                        null,
                        HttpMethod.GET,
                        new Request.Callback() {
                            public void onCompleted(Response response) {
                                Log.d(response.toString(), "");
                                try {
                                    Log.d(response.getGraphObject().getProperty("gender").toString(), "");
                                } catch (Exception e) {
                                    Log.e("oops", e.toString());
                                }
                            }
                        }
                ).executeAsync();

如果我在Graph API资源管理器中输入该ID,就像魅力一样。如果我运行此代码,我会返回一个null对象。如果我将该用户ID更改为&#34; me&#34;或者我的用户ID也可以正常工作。有人可以帮忙吗?

0 个答案:

没有答案