- Node.js v0.10.28
- express v3.8.1
- socket.io v0.9.17
今回はntwitterを使用。 https://github.com/AvianFlu/ntwitter ntwitterの中身については別途確認します
-
twitterのアカウント登録
-
各種キーの取得 参考URL→ http://www.amelt.net/imc/programming/web-app/3215/
-
各モジュールのインストール
$ express sample-tweet-streaming
$ cd sample-tweet-streaming
$ npm install
$ npm install socket.io
$ npm install ntwitter
- ntwitter関連
var twitter = require('ntwitter');
var twit = new twitter({
//各keyは事前に取得したもの
consumer_key: 'aaaaa',
consumer_secret: 'aaaaa',
access_token_key:'aaaaa',
access_token_secret:'aaaaa',
});
app.get('/', function(req, res){})
の部分
app.get('/', function(req, res){
res.render('index',{
keyword: keyword, //別途指定する
title: 'tokunamiの部屋'
});
});
- socket.io部分を追加
io.sockets.on('connection', function(socket){
socket.on('keyword post', function(keyword){
//ここからntwitter
twit.stream('statuses/filter', {'track': keyword},function(stream){
stream.on('data', function(data){
io.sockets.emit('message', data.text);
});
//Disconnect stream after five seconds
setTimeout(stream.destroy, 5000);
});
});
});
- キーワード送信
$('#keyword_form').on('submit', function(){
var keyword = $('#keyword').val();
if(keyword){
socket.emit('keyword post', keyword);
}
});
- ツイッター情報を受信、画面書換え
socket.on('message', function(t){
$('<div></div>')
.html('<li>' + t + '</li>')
.prependTo('#tweets');
});
省略
https://github.com/tokunami/sample-tweet-streaming
- プロキシ経由しない環境では動作確認できた。
- 会社でも動くようにするにはOAuthのところでプロキシ設定する必要がある模様。ntwitterの中を書き換えないといけないようなので、他のAPI利用も含めて解決策を調べます。
node-oauthにProxy機能を拡張したものは,私のリポジトリ(https://github.com/stoshiya/node-oauth)にあります.
npmにはGitHubのリポジトリを参照する機能があります.これとGitHubを活用すると,独自拡張をパッケージングしたモジュールをnpm installするだけで環境をセットアップできます.基本的な手順としては,まずサードパーティのモジュールをforkして拡張します.つぎに自分のリポジトリの中のモジュールをインストールするように,参照元のpackage.jsonを書き換えます.