我无法使用Facebook sdk获取完整的用户个人资料。我试图从Facebook的图形API中检索用户节点,参考以下链接。我只收到了几个字段(有点简介的东西)
https://developers.facebook.com/docs/graph-api/reference/user
我首先使用以下行执行登录。
LoginManager.getInstance().logInWithReadPermissions(getActivity(), Arrays.asList("public_profile", "user_friends"));
一旦有了访问令牌,我就会调用“/ me”端点。我得到了相应用户的Facebook用户ID。使用此ID,然后使用以下代码调用“/ {user-id}”端点。
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/" + userProfile.getId(),
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
Log.d(TAG, response.getRawResponse());
}
}
).executeAsync();
但是返回的字段是有限的,不包含以下链接中提到的完整字段集。
https://developers.facebook.com/docs/graph-api/reference/user
如何检索与用户相关的完整数据集,包括上述链接中提到的朋友列表,年龄等?
我只能检索 id,email,first_name,gender,last_name,link,locale,name,timezone和Verified fields ,目前。
答案 0 :(得分:1)
我想出了如何检索必需或特定字段。默认情况下,不返回特定节点的所有字段。您需要通过将它们作为参数传递来指定它们,如下所示。
GraphRequest graphRequest = new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
Log.d(TAG, response.getRawResponse());
}
}
);
Bundle parameters = new Bundle();
parameters.putString("fields", "id,email,first_name,gender,last_name,link,locale,name,timezone,updated_time,verified,age_range,friends");
graphRequest.setParameters(parameters);
graphRequest.executeAsync();