[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: api и рекурсия
MatrixGod
всем привет!

я сейчас работаю с API фейсбука. этот гад не хочет возвращать все на одной странице а делит их на несколько. вот пример:

{
"data": [
{
"category": "Artist",
"name": "Madonna",
"id": "483587268358826"
},
{
"category": "Tv show",
"name": "House",
"created_time": "2013-02-27T11:09:29+0000",
"id": "7608631709"
}
],
"paging": {
"cursors": {
"after": "что-то там",
"before": "что-то тут"
},
"next": "ссылка на следующую страницу"
}
}



надо проверять есть ли поле next, и если да, посмотреть еще и туда. если нет, это конец.
по скольку я не знаю сколько таких объектов существует пришлось проверять рекурсивно.

код:

function facebookRecursiveLikes($endpoint, $dataArray)
{
$json = file_get_contents($endpoint);
$obj = json_decode($json);

foreach($obj->{'data'} as $value)
$dataArray[] = $value->{'name'};

if(isset($obj->{'paging'}->{'next'}))
{
facebookRecursiveLikes($obj->{'paging'}->{'next'}, $dataArray);
}

return json_encode($dataArray);
}

echo facebookRecursiveLikes('https://graph.facebook.com/likes/.....', array());


объясню. передаю ему пустой массив. этот массив рекурсивно пичкается объектами, потом возвращается в виде JSONа.

проблема в том что возвращается в виде JSONа только самая первая страница а не все страницы соединенные в один большой JSON.

что блин не так? :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.