私のアプリでの私の意図は、音楽、本、テレビなどの友人の興味を引くことです。この情報は公開されています。このため、許可を送信する必要はないと思います。Facebookの(貧弱な)ドキュメントに基づいて、主にこのリンク: 友達の興味を得るフィールド拡張 拡張された友達フィールドに友達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 を使用して友人の関心を取得する方法でない場合、これらの値を取得するにはどうすればよいですか?