たったの50行! node.js でツイート垂れ流しサイト作成法
修正:よく数えたら60じゃなくて50行だった。しかもハッシュタグ垂れ流しでなく好きなキーワード(もちろんハッシュもなんだけど)監視するものになっていた。適当すぎた。
↓の通りコマンド打ってファイル作っていけば、twitterで指定したキーワードを監視してだらだら垂れ流すサイトが出来上がります。
必要なもの
- node.jsとnpmをインストールした環境
- 適当なtwitterアカウント
コマンド
mkdir twithash cd twithash mkdir views npm install socket.io npm install twitter-node npm install express vi web.js vi views/index.html
web.jsの中身
const sys = require('sys'), express = require('express'), app = express.createServer(), io = require('socket.io'), TwitterNode = require('twitter-node').TwitterNode; // express app.configure(function() { app.use(express.static(__dirname + '/views')); }); app.listen(8888); // socket.io const socket = io.listen(app); // twitter var twitter = new TwitterNode({ user: 'アカウントID', password: 'アカウントパスワード', track: ['https'] // ハッシュタグとか適当な単語に書き換えるよろし }); twitter .addListener('tweet', function(tweet) { socket.broadcast(tweet.text); }) .stream();
index.htmlの中身
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>twithash</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <script src="/socket.io/socket.io.js"></script> <script> var socket = new io.Socket(); socket.connect(); socket.on('message', function(t) { $('<div></div>') .text(t) .prependTo('#tweets'); }); </script> </head> <body> <div id="tweets"></div> </body> </html>
ぶっちゃけ
「コマンド入れても50行なので、みなさんぜひやってみてください!」とか煽っても、環境構築が一番大変だってのはみんな分かってるよね、うん。
ただ、私の環境はさくらvpsのCentOS 5.5で、割とつまずきはなかったです。
twitterのidとpwは設定ファイルとかに外出しすべきですね。ライブラリもあるし、無くても適当にやっちゃえばいいかなーと思います。
完成したら、herokuのnode.jsホスティングでもやってみると良いです。カンタンに全世界に公開でき、一定の負荷を超えるまでは無料です。herokuのドキュメントが英語だけど分かりやすいので、それほどつまずかないと思います。
しかしnpmとherokuは素晴らしい。一旦熱が冷めたnode.jsだったけど、一気に再燃しましたw