2011-09-09 3 views
0

나는 많은 뉴스가있는 사이트를 가지고 있지만, 나는 페이스 북이 좋아하는대로 내 기사를 정렬 할 수있는 방법이 있는지 궁금하네요? 어떻게 하루에 모든 기사를 x 번 업데이트하여 서버를 죽이지 않고이 작업을 수행 할 수 있습니까?페이 스북 정렬 주문 (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; 

하지만 난 그렇게 내 모든 기사에 업데이트 한 경우이 내 서버를 죽일 ..

어떤 제안이나 내가 볼 수있는 미리보기 ? 어쩌면 내가 어떤 자바 스크립트 또는 뭔가를 사용할 수 있습니까? 몰라.

+0

무엇이 서버를 죽입니까? file_get_contents? – ajreal

+0

하나의 요청을하면 괜찮습니다. 그러나 1000 개 이상의 기사로이를 수행하는 것을 상상해보십시오. 버튼을 클릭하면 아약스 요청을하는 것처럼 보입니다. – Dexty

답변

1

facebook 좋아요 (URL, 좋아요, 타임 스탬프)를 보유 할 db 테이블을 만듭니다. 페이지가로드되면 Timestamp> now + 일정 시간 동안 테이블의 Likes를 새로 고칩니다. 데이터가 약간 오래된 것일 수 있지만, 5-10 분의 새로 고침 시간이 있다면 대부분의 경우 거의 닫을 것입니다.

0

먼저 REST 인터페이스를 삭제하고 Graph API으로 전환해야합니다.

이렇게하면 원하는 URL의 쉼표로 구분 된 목록을 지정하여 하나의 요청으로 둘 이상의 개체에 대한 데이터를 가져올 수 있습니다. PHP에서 간단한 GET을 사용하거나 JavaScript를 통해 FB.api()를 호출하여이 작업을 수행 할 수 있습니다. 다큐먼트에서

니펫 :

당신은 "IDS"쿼리 매개 변수를 사용하여 단일 쿼리에 여러 개체를도를 요청할 수 있습니다. 예를 들어, URL https://graph.facebook.com?ids=arjun,vernal은 두 응답을 동일한 응답으로 반환합니다.

"ids"쿼리 매개 변수는 URL도 허용합니다. 이것은 열린 그래프에서 URL의 ID를 찾는 데 유용합니다. 예를 들면 : 당신이 당신의 테이블에 자주 액세스해야하는 경우 어떤 경우 https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/

, 최고의 (또는, 가능성 만) 솔루션은 로컬 페이스 북의 데이터를 캐싱.