Opensocial v9: есть ли способ запросить в orkut только определенное поле - PullRequest
0 голосов
/ 20 октября 2010

Я пытаюсь написать пейджер из моего приложения, в котором требуется получить общее количество альбомов. Я могу получить все альбомы из orkut, но это замедляет скорость передачи, поскольку мне нужна только общая сумма, а не данные в альбомах.

Есть ли в opensocial v9 функция, позволяющая проверить, сколько альбомов имеет зритель? или, может быть, я получаю только идентификатор альбомов, чтобы минимизировать время передачи

1 Ответ

0 голосов
/ 20 октября 2010

Opensocial поддерживает разбиение на страницы, предоставляя разработчикам возможность добавлять параметры startIndex и count в DataRequests (и другие * Requests).Если разработчик не предоставляет параметры count, его значение равно 20, и, как вы догадываетесь, если параметр startIndex не указан, он по умолчанию принимает значение 0(zero).

Ответ, который вы получите, должен бытьчто-то вроде:

{
  "startIndex": 0,
  "totalResults": 120,
  "entry": [
    ....
  ]
}

Здесь totalResults - общее количество альбомов, а не количество возвращенных альбомов.Вы можете использовать totalResults для подсчета количества страниц и подготовки пагинации.

Обновление:
opensocial.DataRequest.MediaItemsField.MAX поле, вероятно, используется при создании MediaItemRequests, однако для созданиясписок альбомов AlbumRequest должен быть использован.Вы можете ограничить количество альбомов, извлекаемых в этом конвейере

<os:AlbumsRequest key='myalbums' userid="@viewer" groupid="@self" />

, добавив параметр count, например:

<os:AlbumsRequest key='myalbums' userid="@viewer" groupid="@self" count="5"/>

, этот запрос на альбом извлекается максимум для 5 альбомов зрителя,результирующий json будет:

{
  "startIndex": 0,
  "totalResults": ....here total number of albums....,
  "entry": [
    ....here at max 5 albums....
  ]
}

Здесь вы можете узнать общее количество альбомов, позвонив по номеру myalbums.totalResults.

...