node.jsでTwitter UserStreamを取得する

またUserStreamか・・・、ブログ再開するたびにUserStream書いてる気がする。 node.jsの非同期処理はUserStreamと相性が非常にいいのに情報が古かったりするので書きました。 取りあえず動くのをgithubにおいてます。

oauthモジュールのgetメソッドにコールバック関数を渡さないとストリームを返すので便利です。

var req = oa.get(endpoint, config.access_token, config.access_secret);
req.on('data', function(chunk) {
  console.log(chunk);
});

ただし、chunkは適切な場所で分割されているとは限らないので、そのままJSON.parse(chunk)すると死にます。改行コードを探して1行ずつパースする必要があります。 bylineというモジュールが便利です。