DOM для разбора стены Facebook

Я пытаюсь разобрать сообщения с публичной стены фан-страницы Facebook, но он возвращает пустую страницу.

$source = "http://www.facebook.com/?sk=wall&filter=2"; libxml_use_internal_errors(TRUE); $dom = new DOMDocument(); $dom->loadHTML($source); $xml = simplexml_import_dom($dom); libxml_use_internal_errors(FALSE); $message = $xml->xpath("//span[@class='messageBody']"); return (string)$message[0] . PHP_EOL; 

Related of "DOM для разбора стены Facebook"

Еще один подход заключается в использовании JSON из Graph API

 $posts = json_decode( file_get_contents('https://graph.facebook.com/swagbucks/posts') ); foreach($posts->data as $post) { echo $post->message, PHP_EOL; } 

Метод DOMDocument::loadHTML() , который вы используете, ожидает HTML-контент как параметр, а не URL-адрес.

Здесь вы пытаетесь интерпретировать свой URL как некоторый HTML-контент, а не то, на что он ссылается.

используя этот метод, вы можете попробовать использовать файл, который работает с файлом, или контент-ремонт, например DOMDocument::loadHTMLFile() .

Это неправильный способ получить данные из Facebook, и ясно, что вы хотите избежать создания приложения Facebook.

Но хорошая новость заключается в том, что вы все еще можете использовать FQL, попробуйте этот запрос в API-интерфейсе Graph API .

В нижеприведенном запросе мы запросили таблицу stream чтобы получить публичные фиды на странице разработчиков Facebook :

 SELECT message FROM stream WHERE source_id=19292868552 AND is_hidden = 0 AND filter_key='owner' 

Он вернет все « общедоступные » каналы страницы. Очевидно, вам может понадобиться получить больше полей для создания значимого результата.


Вы должны предоставить действительный access_token для доступа к публичным сообщениям. Подробнее читайте здесь .