Intereting Posts
POJO-объект для этого XML-ответа в котлине Дисперсия типа Коттина и звездная проекция Может ли kotlin интерфейс кэшировать значение? Отражение Котлина недоступно Saripaar formvalidation не работает второй раз в котлине Не удалось добавить расширения Android Kotlin в мой проект Создание исполняемой толстой баночки с град-скрипт-котлин Как использовать Spek Расширения Android Kotlin и сохранившийся фрагмент Ошибка ввода типа. Попробуйте указать тип аргументации: Kotlin Нельзя издеваться над финальным классом Kotlin, используя Mockito 2 Скользящий ответ после успеха в Котлине Тема и стиль Анко Как решить: «Не удается найти getter для атрибута« android: text »при реализации двусторонней привязки данных к пользовательскому представлению? Как написать надлежащий тест для реактивного репозитория интерфейса, который возвращает Observable только в том случае, когда есть какое-то событие, как издеваться над запуском этого события

Spring шаблон шаблона сайта fetchObject для PagedList

Я использую следующий подход, чтобы вернуть музыкальные предпочтения пользователя Facebook:

//FIXME: Fetch results in a single operation val likes = facebook.likeOperations().music val artists = ArrayList<Artist>() for (musicLiked in likes) { val musicProfile = facebook.fetchObject(musicLiked.id, Page::class.java, "id", "name", "genre"); artists.add(Artist(name = musicProfile.name, genre = musicProfile.genre)) } 

Вышеуказанный подход не будет масштабироваться, так как у нас есть дополнительная сетевая операция для каждого художника, которого любит пользователь.

Я пытался:

Я попытался использовать facebook.likeOperations.music но это не приносит жанр.

Вопрос:

Я хотел бы использовать facebook.fetchObject с запросом, который возвращает PagedList . Как это сделать?

(Нет необходимости размещать пример кода в Котлине, если вы предпочитаете или более знакомы с Java – я буду доволен информацией на любом языке) .

Solutions Collecting From Web of "Spring шаблон шаблона сайта fetchObject для PagedList"

Facebook api использует параметр «fields» в запросах на возврат пользовательских полей для объектов. Этот параметр можно также использовать для запрошенного музыкального отдыха.

 me/music?fields=id,genre,name 

выше ссылки вернет всю понравившуюся музыку с идентификатором, жанром и именем исполнителя / группы. К сожалению, у FacebookTemplate нет метода, который будет применяться для ваших нужд. Метод Facebook.likeOperations () возвращает экземпляр класса LikeTemplate, который имеет постоянные PAGE_FIELDS со значением

 private static final String PAGE_FIELDS = "id,name,category,description,location,website,picture,phone,affiliation,company_overview,likes,checkins"; 

В вышестоящей константе у вас нет жанра. Таким образом, у вас есть два способа:

  1. Вы можете просто использовать facebook rest api с некоторой библиотекой отдыха
  2. Вы можете переопределить FacebookTemplate и вернуть свою собственную реализацию LikeTemplate в результате метода likeOperations (). Реализация класса LikeTemplate должна иметь разное значение в упомянутой константе (добавленное поле жанра в конце строки)

Может быть, кто-то станет более полезным, но, насколько мне известно, у вас нет других возможностей.

Благодаря совету, приведенному в ответе @ burovmarley, я осмотрел источник и придумал:

 val music = facebook.fetchConnections(userPage.id, "music", Page::class.java, PagingParameters(25, 0, null, null).toMap(), "id,name,,genre") for (musicLiked in music) { println("likes: ${musicLiked.name}, genre: ${musicLiked.genre}") } 

Это позволяет использовать Spring Social Facebook как немодифицированную зависимость и не выдавать запрос на перенос, который, по-видимому, довольно медленный при обработке через очередь в настоящее время.