twitterから自分の呟きを取得したい [php]

お久しぶりです。
最近(といっても、今年の夏ですが)twitterを始めました。
当初は twitter-API(OAuth認証) が使いたくてIDを取得したのですが、気がついたら毎日つぶやくようになりました。

そこで、ソースコードをきれいに表示してくれる WP SyntaxHighlighter を導入してみたので、試しに自分の呟きを取得する php スクリプトを載せてみます。

ぁ、実行は自己責任でお願いしますね。
また、間違ってるところがあった場合、指摘していただけるとうれしいです。

では、早速やってきましょう。

今回は、twitterの検索APIを使っていきます。
このAPIは認証がありませんので、 OAuth とか気にしなくて使えます。
※ただし、リクエスト回数に制限があるようです。実際に使うときはキャッシュ等を併用してください。

1. リクエストURI

http://search.twitter.com/search.[フォーマット]

フォーマットは atom(RSS) と、 json から選ぶことが出来ます。
jsonp にも対応していて、 jQuery 等からも GETで callback を指定すると利用できます。
今回は、 php から利用するので、 フォーマットには json を指定します。

2. GET(パラメータ)

q=**** 必須

検索キーワードです。絶対いります。
今回は自分の発言を取得したいので、「 from:**** 」って感じで指定します。

rpp=[int]

取得件数を指定します。最大で 150 まで指定できます。
任意なので、何も指定しないときは 15件 返されます。

他にもパラメータを指定できます。
他に指定できるパラメータなどは、以下がとても詳しいです。

http://d.hatena.ne.jp/favril/20090327/1238138002
+ Twitter 検索API メモ – 超自己満足プログラミング

3. スクリプト

いきなりバーンと載せます。

<?php
/*

	ツイート取得のテスト
	
	:: 入力
		[id] => ツイッターID
		
		指定されたIDのツイートを指定件数返す。

*/

// ツイート取得件数
	$num = 5;

// 入力を確認
	if(!isset($_GET["id"])) exit("Please set your twitterID.");
	$id = $_GET["id"];
	
// JSON取得
	$json = file_get_contents("http://search.twitter.com/search.json?q=from:".$id."&rpp=20");
	$json = json_decode($json);

// 発言だけ取得
	$tweet = array();
	$cnt = 0;
	$i = 0;
	while( $entry = $json->results[$i] ) {
		
		if(empty($entry->to_user_id)) { // リツイートでないものだけ取得
		
			$tweet[] = $entry->text;
			$cnt++; //カウント増加
			
			// ループ抜ける判定
				if($cnt >= $num) break;
		}
	
	$i++;
	}
	
// ヒットゼロのとき
	if($cnt < 1) exit("No entry.");

// 取得した発言配列を表示
	print_r($tweet);
	


?>

こんな感じです。

./tweet.php?id=****
実行すると、配列で指定したユーザーの発言だけを5件返します。
このとき @*** のように、他のユーザー向けの発言は省くようにしています。

試しに書いてみたものなので、発言だけを返しますが、他にも日付などなど取得できます。

いろいろ自分なりに試行錯誤してみてください。

ちなみに、同じようなスクリプトはすでにネット上にたくさん出回っています。
ただし、見た限りはみんな RSS を使っていましたので、今回は json を使って記述してみました。

使い方は、いろいろ考えてみてくださいね。

(余談)

自分の twitterID は @ryakui です。
+ http://twitter.com/#!/ryakui

web 関係の方とかフォローお待ちしてますよ!!

でゎ。

コメント

タイトルとURLをコピーしました