node.jsのtwitモジュールを使ってTLをUserStreamで取得してみる
環境
- Raspberry Pi2 + Raspbian
- Node v6.3.0 + npm v3.10.3 導入済
- Consumer Key と Access Token 取得済
twitモジュールのインストール
$ nam install twit
UserStreamを取得させてみる
Consumer Key と Access Token は取得したものをコピペしてください。
userstream.js
var twit = require('twit'); var twitter = new twit({ consumer_key : 'consumer_key', consumer_secret : 'consumer_secret', access_token : 'access_token', access_token_secret : 'access_token_secret' }); var stream = twitter.stream('user'); stream.on('tweet', function(tw){ var text = tw.text; var screen_name = tw.user.screen_name; var user_name = tw.user.name; var time = tw.created_at; console.log(user_name +' ( @' + screen_name + ' ) ' + time + '\n' + text +'\n'); });
想像よりはるかに簡単でびびった(KONAMI)
おまけ
nyan.js
var twit = require('twit'); const MY_TWITTER_ID == user_id; var twitter = new twit({ consumer_key : 'consumer_key', consumer_secret : 'consumer_secret', access_token : 'access_token', access_token_secret : 'access_token_secret' }); var stream = twitter.stream('user'); stream.on('tweet', function(tw){ var text = tw.text; var screen_name = tw.user.screen_name; var user_name = tw.user.name; var time = tw.created_at; var isRetweet = tw.retweeted; var isRetweet2 = (new RegExp(/(R|Q)T @[^\s ]+/g)).test(text); if(user_id == MY_TWITTER_ID){ return;} if(isRetweet || isRetweet2){ return; } if(text.match(/にゃ/)){ var tweet = '@' + screen_name + ' にゃーんっ'; twitter.post('statuses/update', { status: tweet }, function(err, data, response){ if(!err) { console.log('Posted : ' + data.user.screen_name + ' > ' + data.text + ' (' + data.created_at + ')'); } }); } //console.log(user_name +' ( @' + screen_name + ' ) ' + time + '\n' + text +'\n'); });
TLにねこさんがいたら鳴き声を返すよ。
RTと自分のツイートに反応しないように書き足したよ