2011-09-09 7 views
0

У меня есть сайт с большим количеством новостей, однако мне интересно, есть ли способ, которым я могу сортировать свои статьи по facebook? и как я могу это сделать, не убивая мой сервер, обновляя все статьи x раз в день?Упорядочить по facebook нравится (PHP)

первым я думал сделать что-то вроде этого,

$source_url = "http://example.com/"; //This could be anything URL source including stripslashes($_POST['url']) 

$url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($source_url); 
$xml = file_get_contents($url); 
$xml = simplexml_load_string($xml); 
$likes = $xml->link_stat->like_count; 

Но это было бы убить мой сервер, если я сделал обновление на всех моих статей так ..

Любые предложения или фрагменты кода я могу смотреть на ? возможно, я могу использовать javascript или что-то еще? Не знаю.

+0

Что убивает ваш сервер? Файл_get_contents? – ajreal

+0

Если я сделаю один запрос, все в порядке, но представьте, что вы делаете это с 1000+ статьями. Похоже, я иду на запрос ajax, когда они нажимают на кнопку. – Dexty

ответ

1

Создайте таблицу db для хранения понравившейся facebook (URL, Likes, Timestamp). При загрузке страницы, если Timestamp> now + определенное количество времени, обновите Likes в таблице. Данные могут быть немного устаревшими, но если бы у вас было время обновления 5-10 минут, я бы подумал, что это будет довольно близко в большинстве случаев.

0

Ну, прежде всего, вы должны отказаться от старого интерфейса REST и переключиться на Graph API.

Когда вы это сделаете, вы сможете получить данные для нескольких объектов в одном запросе, указав список нужных URL, разделенный запятыми. Вы можете сделать это как с PHP с помощью простого GET, так и с помощью Javascript с вызовом FB.api().

Отрывок из док:

Вы также можете запросить несколько объектов в одном запросе с помощью «ИДС» параметр запроса. Например, URL https://graph.facebook.com?ids=arjun,vernal возвращает оба профиля в одном ответе.

Параметр запроса «идентификаторы» также принимает URL-адреса. Это полезно для поиска идентификаторов URL-адресов в Open Graph. Например: https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/

В любом случае, если вам нужен частый доступ к таблице, лучший (или, скорее, только) решение локально кэшировать данные Facebook.

Смежные вопросы