#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.
}