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();