在我的应用程序中,我的目的是获得朋友的一些兴趣,例如音乐、书籍、电视。此信息是公开的。为此,我认为我不需要发送许可。基于 facebook (poor) 文档,主要是这个链接: Field Expansion to get friend interest 我只需要在扩展的朋友字段中传递朋友 ID。在 GraphExplorer 上做一些测试,我看到它创建了以下查询来从某个朋友那里获取电影:
MY_ID?fields=friends.uid(FRIEND_ID).fields(movies)
我使用它并在 Request.newMyFriendRequest 上异步执行此代码:
Session activeSession = Session.getActiveSession();
if(activeSession.getState().isOpened()){
Request request = Request.newMyFriendsRequest(activeSession,
new GraphUserListCallback(){
@Override
public void onCompleted(List<GraphUser> users, Response response){
GraphUser user = users.get(0);
JSONObject friendLikes = user.getInnerJSONObject();
try {
JSONArray data = friendLikes.getJSONObject("friends").getJSONArray("data");
Log.i("JSON", friendLikes.toString());
addInterests(data, 0);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle bundle = new Bundle();
bundle.putString("fields", "friends.uid("+friendID+").fields(movies)");
request.setParameters(bundle);
request.executeAsync();
每次执行此代码时,我都会从 JSON 收到以下错误:W/System.err(694): org.json.JSONException: No value for friends。如果这不是使用 GraphAPI 获得朋友兴趣的方法,我需要做什么才能获得这些值?