passportでOAuth認証した際のFacebookGraphAPIの呼び出し方

node.jsにおいてpassportを使用してOAuth認証した際のFacebookGraphAPIの呼び出し方についてメモしておく。

TwitterAPIの呼び出しについては下記ページが詳しいです。
http://qiita.com/sckm/items/e6a7fd669e2367bc441f

コード

  passport._strategies.facebook._oauth2.getProtectedResource(
      'https://graph.facebook.com/me',
      user.token,
      function (err, data, response) {
        if(err) {
          console.log('error: facebook api.');
          res.send({'error': 'An error has occurred'}, 400);
          return;
        }
        console.dir(data);
        res.send({
          data: data,
        });
      });

getProtectedResourceに設定する引数

  1. URI
  2. OAuth認証時に得られるtoken
  3. コールバック

Twitterの場合と異なる点

  1. _oauthではなく_oauth2
  2. tokenSecretを使用しない(そもそもOAuth認証時に得られるtokenSecretはundefined)
  3. HTTPメソッドを指定しない


正直、なぜoauth2を使うのかとか、HTTPメソッド指定しなくていい理由とか分かってないです。Passportの公式ドキュメントにも記載がないので、これが本当に正しい実装なのか怪しいかもです。

とりあえず動いてはいるので、FacebookGraphAPIを呼び出したい方は参考にして頂けたらと思います。

おすすめ参考文献

Node.js+Expressの構成の使い方を解説してくれます。初めてNode.jsやExpressに取り組む方の最初にオススメです。