2012-10-15 6 views
1

PHP 내에서 Facebook 팬 페이지 용 RSS 2.0 피드를 가져 오려고합니다.Facebook 팬 페이지의 RSS 피드 구문 분석 : 헤더를 위조하는 방법

브라우저에서 피드에 액세스해도 문제가 없습니다. 그러나 PHP에서 사용하려고 시도 할 때 Facebook은 "브라우저 업그레이드"알림으로 리디렉션 할 코드를 반환합니다. W3C RSS 유효성 검사기를 사용하여 피드의 유효성을 검사하려고 할 때도 마찬가지입니다.

그래서 Facebook은 사용자 에이전트를 분석하고 피드를 전달하거나 "업데이트해야합니다"페이지를 전달하는 로직을 가지고 있어야합니다.

질문 : PHP 내에서 해당 RSS 피드에 액세스하려면 어떻게합니까?

SimpleXML 또는 DOMdocument를 사용할 때 사용자 에이전트 헤더를 직접 위조 할 수 있습니까? CURL (헤더를 쉽게 설정할 수 있음)을 사용하여 피드를 가져 오는 옵션이 있다는 것을 알고 있지만 그렇게하지 않는 것이 좋습니다.

모든 아이디어를 환영합니다!

답변

1

호기심을 일으킬 수도있는 사람들을 위해, ini_set()은 하나의 해결책 인 것 같습니다.

<?php 

ini_set('user_agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0'); 

$url = 'https://www.facebook.com/feeds/page.php?format=rss20&id={your-page-id}'; 
$xml = simplexml_load_file($url); 
foreach($xml->channel->item as $status){ 
    // Do something for each News Feed update 
} 

Zuckerberg가 사용자 에이전트 요구 사항을 업데이트하는 것처럼 느껴지더라도 누가이를 검증할지 알 수 있습니다.