Пакетные постраничные запросы - PullRequest
2 голосов
/ 26 августа 2011

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

Я написал веб-страницу, чтобы позволить мне все это протестировать, содержащую следующую форму:

<form method="GET" action="https://graph.facebook.com">
<input type="hidden" name="access_token" value="blahblahblah">

<input type="hidden" name="batch" value="[{'method':'GET', 'name':'getnews',
   'omit_response_on_success':false, 'relative_url':'me/home'},{'method':'GET', 
   'relative_url':'{result=getnews:$.paging.next}'}]">

<input type="hidden" name="method" value="post">
<input type="submit">
</form>

Конечно, когда я получаю ответ от Facebook, требующий подкачки страниц, значением paging.next является полный URL-адрес, а для функции пакетной обработки требуется относительный_урл, поэтому мой первый запрос работает, а второй возвращаетсяс URL-адресом paging.next в ключе «body».

Я нашел фрагмент документации на Facebook, в котором говорится, что такой запрос работает, когда вы выполняете graph.facebook.com, а затем указывает полный URL-адресзапрос: //graph.facebook.com/http://graph.facebook.com/me/home?_fb_url=me/home&access_token=blahblahblah"

Я был удивлен, обнаружив, что это работает, но это происходит, когда я просто делаю этот запрос GET к API Graph.К сожалению, функция пакетной обработки не позволяет мне поместить этот полный URL-адрес в поле «относительный_урл» - он просто выполняет функцию «тела».

У кого-нибудь есть хороший способ пакетных запросов для нескольких страниц?Мы с kongo09 размышляли над этим на форуме разработчиков в Facebook, но я думаю, что он уже вышел ... http://forum.developers.facebook.net/viewtopic.php?id=107098

Спасибо, -Karl

1 Ответ

1 голос
/ 07 марта 2014

Я нашел способ:

Вы должны использовать

"relative_url":"me/home?after={result=getnews:$.paging.cursors.after}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...