я сейчас работаю с 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.
что блин не так? :)