Извлечение значения JSON API графа Facebook - PullRequest
0 голосов
/ 02 мая 2011

У меня есть простой PHP-код, который получает значение API графа Facebook (общее количество лайков определенной фан-страницы) через JSON.Он прекрасно работает для подавляющего большинства фан-страниц, но для 3 (из 17 фанатских страниц, которые я отслеживаю) просто не может прочитать и напечатать это значение.

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

Вот код, который печатает правильное значение для страницы с идентификатором 214014840762:

<?php    
$currsiteurl = 'http://graph.facebook.com/214014840762';  
$graph = json_decode(file_get_contents($currsiteurl));  
$currnofans = $graph->likes;  
echo "Number of likes: ".$currnofans; // prints out 107936    
?>

если я просто изменю ID на 160788560626000 или 167134649991034, тот же код больше не будет работать и ничего не печатать.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 02 мая 2011

Я не знаю, что это за страницы или каковы их URL в Facebook, поэтому я не могу это проверить, но, возможно, ваша страница либо не опубликована (вероятно, не так вероятно), либо (вероятно, более вероятно)) ограничен по возрасту.График Facebook не позволяет получить доступ к информации страницы, если она ограничена по возрасту.К сожалению, это даже верно, если вы передаете токен доступа к приложению Facebook или даже токен доступа для пользователя старше 18 лет. Это довольно глупо, и на bugs.developers.facebook должно быть не менее 5 сообщений об ошибках.com для него.

Обновление от 6/13/2011
Недавно Facebook сделал обновление, которое требует от вас использовать действительный токен доступа пользователя для получения информации о странице.Это ужасное изменение, иммо, но это то, что есть.Без действительного токена доступа пользователя вы получите ответ false или error от каждой конечной точки, которая не является базовой информацией (root, http://graph.facebook.com/<page_id>) или photos, или albums конечных точек.

Таким образом, если вам запрошена какая-либо другая конечная точка (posts, feed, videos, statuses и т. Д.), Вам необходимо убедиться, что вы предоставили действительный пользователь токен доступа для доступа к ним.

0 голосов
/ 25 июня 2011

Если я прав, то результат - массив, а не класс так что попробуйте что-то вроде $ graph ["likes"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...