Node.jsでTwitterと連携してみた

Twitterにログインすると、フォローしているアカウントの自己紹介文を調べ、その中にURLが記述されているアカウントをリストアップします。

gibachan/Node-Express-Passport-Twitter-Example · GitHub



実行するためには、以下のサイトで予めTwitterのconsumer key、consumer secretを取得しておく必要があります。

Twitter Developers

app.jsファイルの次の部分に取得したキーを設定します。

var TWITTER_CONSUMER_KEY = "xxxxxxxxxxxxxxxxxxxxxxx";
var TWITTER_CONSUMER_SECRET = "xxxxxxxxxxxxxxxxxxxxxxx";


Node.js & npm がインストールされている環境で、
最初に依存モジュールをインストールし、

npm install

次のコマンドで実行できます。

npm start

プログラムを実行して、http://localhost:3000/にアクセスすると、ログインのリンクからTwitterのページへ遷移します。
ログイン処理が行われると、フォローしているアカウントのリストが表示されます。
f:id:gibachan03:20140505092343p:plain


今回調べて、Node.jsでTwitter等のOAuth認証にはPassportが便利らしいことが分かった。
Passport - Simple, unobtrusive authentication for Node.js.
FacebookとかかなりたくさんのSNSに対応している模様。


しかし!
ログインは出来るんだけど、その後の処理に困った!
ログイン後に、TwitterREST APIをつっつきたかったんだけど、Passportを利用した方法がわからなかった。

こちらのページを参考に一応動かすことができたが、oauthオブジェクトを無理やり取ってきている気がしてちょっと不安。ログイン後の処理はPassportに任せるのはおかしいのかな?
JavaScript - Passport-twitterで1.1APIを叩く #たぶん間違った使い方 - Qiita


あと、Expressのバージョンが4に上がって細かいところが変わっていて地味に手間取ってしまったり。(セッションの扱いとか)