私は運営サイトの過去ログをTwitterに投稿し、そのTwitterの投稿内容をRSS化してfacebookに投稿する(RSS graffitiというアプリを使っています)という使い方をしていたので困ってましたが、Twitter RSSが行なっている「TwitterのタイムラインをRSSに変換して出力する」という処理を自前で用意することにしました。
ADs
小粋空間様の内容を参考に(というかほぼまるごと転用・・・)、引数でユーザー名を渡すとRSSを返すという処理を用意しました。小粋空間様と違う点としては、ファイルの生成ではなく直接RSSを出力している点です。
使用しているtwitteroauth.phpはGitHubよりダウンロード出来ます。
以下のファイルをrss.phpのような名前で保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
require_once("twitteroauth/twitteroauth.php"); $name = $_GET['username']; //以下の情報はdev.twitter.comにアクセスして取得できます $consumerKey = "consumerKey"; $consumerSecret = "consumerSecret"; $accessToken = "accessToken"; $accessTokenSecret = "accessTokenSecret"; $connection = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret); $request = $connection->OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $name, "GET", array("count"=>"10")); $results = json_decode($request); if (isset($results)) { echo '<?xml version="1.0" encoding="utf-8"?>' . "\n" . '<feed xmlns="http://www.w3.org/2005/Atom">' . "\n"; echo '<title>' . $name . "のフィード</title>\n"; echo '<link rel="alternate" type="text/html" href="' . 'https://twitter.com/' . $name . '" />' . "\n"; echo '<id>tag:' . $name . "</id>\n"; echo '<updated>'; foreach ($results as $key => $val) { echo date('Y-m-d H:i:s', strtotime($results[$key]->created_at)); break; } echo "</updated>\n"; foreach ($results as $key => $val) { echo "<entry>\n<title>" . $results[$key]->text . "</title>\n"; echo '<link rel="alternate" type="text/html" href="' . 'https://twitter.com/' . $name . '/status/' . $results[$key]->id_str . '"/>' . "\n"; echo '<id>tag:' . $results[$key]->id_str . "</id>\n"; echo '<published>' . date('Y-m-d H:i:s', strtotime($results[$key]->created_at)) . "</published>\n"; echo "<author>\n<name>" . $name . "</name>\n</author>\n" . '<content type="html">'; echo $results[$key]->text; echo "</content>\n</entry>\n"; } echo '</feed>'; } |
そして上記のrss.phpとtwitteroauthフォルダ(中にはOAuth.phpとtwitteroauth.phpが入っている)をサーバにアップロードし、
http://hogehoge.com/rss.php?username=woodroots ※URLは架空のものです
のように引数でユーザー名を渡すことで、そのユーザーのタイムラインがRSS(Atom)で出力されます。
twitteroauth.php内でcURLを使ってますので、インストールされていないサーバだと上記スクリプトは動きません。
適宜インストールする必要がある場合があります。
ユーザー名を渡せば取得したJSONをRSSのフォーマットに変換して出力するというものですので、上記スクリプトを一般公開すればTwitterRSSと同種のサービスを運用できるのではないかと思いましたが、利益とまではいかなくてもサーバ代だけでも捻出する方法が思いつきませんでした。
RSSフィード内の何件に1件広告を混ぜるぐらいしかないでしょうが、利用者に嫌われるでしょうね┐(´д`)┌
ADs
コメントはまだありません。