Как извлекать вложенные объекты сразу с помощью RestFB?

#facebook-graph-api

#facebook-graph-api

Вопрос:

Итак, я могу получить сообщение, используя этот код:

 Post post = facebookClient.fetchObject("postId", Post.class,  Parameter.with("id", "message","from"));
  

Поле «from» возвращает идентификатор и имя автора, но не как пользовательский объект.

Чтобы получить пользовательский объект, я должен снова отправить запрос:

  User user = facebookClient.fetchObject(post.getFrom().getId, User.class, ..);
  

Это может привести к безумному количеству запросов.

Могу ли я получить их сразу? вот так:

 MyPost extends Post{
    User fetchedUserWithFromFieldId;
}
  

и каким-то образом вызвать:

 facebookClient.fetchObject("postId", MyPost.class,  Parameter.with("id", "message","from")).deepFetch("fetchedUserWithFromFieldId",User.class, Parameter.with("link","name","location"..etc));
  

Итак, в основном мне нужен FB-эквивалент SQL join.

Ответ №1:

Вот решение:

Сами поля параметров могут быть вложенными.
https://restfb.com/documentation/source : , Глава: «Запрос с полями (с третьего по n-й уровень)»

 facebookClient.fetchObject("postId", MyPost.class,  Parameter.with("id", "message","from{link,name,location}"));

MyPost extends Post{
    MyUser user; // MyUser has fields link,name,location.
}