node.jsでTwitterのタイムライン取得

Twitterのパブリックタイムラインをプッシュでリアルタイムに情報を受け取ることのできるAPI

http://dev.twitter.com/pages/streaming_api

よくサンプルで接続している先
http://stream.twitter.com/1/statuses/sample.json

さらに、statuses/filterを使用すると指定したキーワードのパブリックステータスだけを送ってもらうことができます。

trackパラメータ
キーワード指定はtrackパラメータ
試した感じ、大文字と小文字を区別しませんでした。
キーワードは「,」で区切れば、複数のOR検索が出来ます。

followパラメータ
ユーザーを指定はfollowパラメータ
ユーザーのIDを指定します。
ユーザーか、指定ユーザのReTweetかが対象となります。
キーワードは「,」で区切れば、複数のOR検索が出来ます。

locationsパラメータ
場所の指定を行う場合は、
locations=南西,北東を経度緯度で指定して
特定の地域を選択できます。

var	sys		=	require('sys');
var	http	=	require('./http-basic-auth');

var	account	=	{username: '****',password: '****'};
var	client	=	http.createClient(80, 'stream.twitter.com', false, false, account);
var	request	=	client.request('GET', '/1/statuses/filter.json?locations=122.87,24.84,153.01,46.80', {'host': 'stream.twitter.com'});

request.on('response', function (response) {
	response.on('data', function(chunk) {
		try {
			var json =JSON.parse(chunk);
			var name = json['user']['name'];
			var text = json['text'];
			var profile_background_image_url = json['user']['profile_background_image_url'];
			var created_at = json['created_at'];
			var coordinates = json['coordinates']['coordinates'];
			var geo = json['geo']['coordinates'];
			console.log("-------------------------------------------");
			console.log("name: " + name);
			console.log("text: " + text);
			console.log("created_at: " + new Date( created_at + new Date().getTimezoneOffset() ) );
			console.log("profile_background_image_url: " + profile_background_image_url );
			console.log("coordinates: " + coordinates );
			console.log("geo[ido]/[keid]: " + geo );
			}
		} catch (e) {
// 				console.log(e);
		}
	});
});

request.end();

node.jsをCentOSにインストールしてみた。

最近話題のnode.jsをインストールしてみた。

サーバを準備すのも面倒なので、VirtualBoxにVMとしてCentOSを準備。

準備が出来たら、こんな感じで

 
# su - 
# cd /usr/local/src 
# wget http://nodejs.org/dist/node-v0.4.2.tar.gz 
# tar xzvf node-v0.4.2.tar.gz 
# cd node-v0.4.2 
# ./configure 
処理が流れる 
#make install 

インストールが終わった。下記バージョンがでればOK。
ちなみにネットで「gcc-c++」「openssl-devel」とかが入っていなくて失敗という記事をよく見たので
あらかじめインストールでdevelなんちゃらは入れておきました。

 
#node -v 
v0.4.2 

つぎに「npm」をインストールする。
npmはPHPのPEAR的なもので、いろんなモジュール(フレームワークも)簡単にインストールできる。
インストールは簡単

 
#curl http://npmjs.org/install.sh | sh 

これでインストールは終わったので、フレームワークとかを一通りインストール
やりたいことのが
・DB連携させてみたい。
・websocketを試したい。
だったので、これらを入れてみた。

 
#npm install express
#npm install mysql 
#npm install socket.io 
#npm install http://github.com/miksago/node-websocket-server/tarball/master 
#npm install http-basic-auth 

http-basic-authはJSONの解析エラーがでたので
http://registry.npmjs.org/http-basic-auth/-/http-basic-auth-0.1.0.tgz
を落としてきて、ファイルを直でおいて使ってます。

 
var http = require('./http-basic-auth'); 

とりあえず環境はそろったので、これからソースを準備。