我尝试使用适用于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也可以正常工作。有人可以帮忙吗?