【Old Log】FacebookページをRSSで取得してPHPで処理してみました




この情報は三年以上前の古い情報です。

ちょっとした便利メモです。うっかり消してしまいそうなので、こちらに書き残しておきます。使えるようだったら使ってみてくださいね。
さてさて「Facebookページ RSS PHP」とGoogle先生に聞くと出力するだけのものは一杯でてくるのですが、うまくカスタマイズしたものがでてこなかったので、ちょっと作ってみました。

FacebookページのRSSは以下のようなサイトを利用すると便利です。
http://www.lottaleben.biz/rss-feed-url-generator

単に出力するだけだと、書き込みの一部の出力が空になっていたりします。これは画像だけアップして何も文字を書き入れなかった場合になる現象のようなので、その場合は「Facebookページを更新しました」みたいな文字を表示してみるようにしてます。

日時もそのままだと「Mon, 26 May 2014 06:38:45 +0000」といった具合に表示されるので、日時を分かり易く&日本時間で表記させるようにしています。「こんな感じに→2014-05-26 15:38:45」

<?php
//仮のユーザーエージェント
ini_set('user_agent', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
//Feedの取得
$txt=file_get_contents('ここにはFacebookのRSS情報を記入');
//XML文字列をロード
$xml = simplexml_load_string($txt);
echo '<h3>'.(string)$xml->channel->title.'</h3>';//FBページのタイトル
echo '<time>'.(string)$xml->channel->lastBuildDate.'</time>';//最終更新日時


for ($i = 0; $i <= 9; $i++) {
$item = $xml->channel->item->$i->title;//書き込みの一部
if($item==' '){$item='Facebookページを更新しました';}
$title = $item;
$title = html_entity_decode($title); 
$title = mb_strimwidth($title, 0, 50, '...', 'UTF-8');
// 日時の表示を変更
$date = $xml->channel->item->$i->pubDate;//書き込んだ日時
$rssDate = $date;
date_default_timezone_set('Asia/Tokyo');
$date = strtotime($rssDate);

// 取得した各要素をhtmlで出力
echo '<ul>';
echo '<li>'. $title.'</li>';//処理済み書き込みの一部
echo '<!--'.(string)$xml->channel->item->$i->description.'-->';//実際の書き込み(参考:コメントアウト)
echo '<li>'.(string)$xml->channel->item->$i->link.'</li>';//書き込みのページのURL
echo '<li>'. date('Y-m-d H:i:s', $date).'</li>';//処理済み書き込んだ日時
echo '</ul>';
}

?>