我试图从ParseUser中检索authData字段。使用Parse 1.9.1,我曾经这样做过:
ParseUser user = ParseUser.getCurrentUser();
HashMap authDataMap = (HashMap)user.get("authData");
HashMap facebookMap = (HashMap)authDataMap.get("facebook");
String facebookId = (String)facebookMap.get("id");
这很好。
虽然有些变化。我不知道是不是因为我更新到Parse 1.9.2或者Parse服务器端发生了某些变化,但authData不再可访问。 user.get(" authData")行返回null。即使我重新获取用户。
最终我想从ParseUser中检索Facebook ID,最好不要去Facebook。这不再可能吗?
答案 0 :(得分:1)
如果您正在使用ParseFacebookUtils执行登录Facebook用户,那么在成功登录解析后尝试使用以下内容获取GraphUser以获取Facebook用户数据 -
Request.newMeRequest(ParseFacebookUtils.getSession(),
new Request.GraphUserCallback() {
@Override
public void onCompleted(
final GraphUser fbUser,
Response response) {
try {
if (fbUser != null
&& parseUser != null
&& fbUser.getName()
.length() > 0) {
// Facebook user data
String fbId = fbUser.getId();
} else {
// Facebook user not logged in
}
} catch (Exception e) {
e.printStackTrace();
stopLoading();
}
}
}).executeAsync();
答案 1 :(得分:0)
您是否看过Parse.com文档中的Facebook Users部分。我认为authData用于内部通信,不应该被调用(更多)。