使用OAuth和Node访问外部API

时间:2014-11-17 21:23:45

标签: node.js oauth yahoo-api

我正在尝试使用他们的API创建一个从Yahoo获取数据的应用程序。我有一个使用MEN(Mongo,Express,Node)堆栈设置的网站。我在弄清楚如何从我的服务器向Yahoo发出请求并获取我想要的数据时遇到了很多麻烦。我在搜索时发现了这一点,但我并不完全理解它或者发出请求,获取数据并处理数据的一般过程。在解释如何使用Node访问外部API /使用带节点的OAuth时,任何帮助都会非常有用。

app.get('/page.html', function (req, res, next){
    var qs = require('querystring')
  , oauth =
    { callback: 'http://awebsite.com'
    , consumer_key: my_key
    , consumer_secret: a_secret
    }
  , url = 'https://api.twitter.com/oauth/request_token'
  ;
request.post({url:url, oauth:oauth}, function (e, r, body) {
  // Ideally, you would take the body in the response
  // and construct a URL that a user clicks on (like a sign in button).
  // The verifier is only available in the response after a user has
  // verified with twitter that they are authorizing your app.
  var access_token = qs.parse(body)
    , oauth =
      { consumer_key: CONSUMER_KEY
      , consumer_secret: CONSUMER_SECRET
      , token: access_token.oauth_token
      , verifier: access_token.oauth_verifier
      }
    , url = 'https://api.twitter.com/oauth/access_token'
    ;
  request.post({url:url, oauth:oauth}, function (e, r, body) {
    var perm_token = qs.parse(body)
      , oauth =
        { consumer_key: CONSUMER_KEY
        , consumer_secret: CONSUMER_SECRET
        , token: perm_token.oauth_token
        , token_secret: perm_token.oauth_token_secret
        }
      , url = 'https://api.twitter.com/1.1/users/show.json?'
      , params =
        { screen_name: perm_token.screen_name
        , user_id: perm_token.user_id
        }
      ;
    url += qs.stringify(params)
    request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {
      console.log(user)
    })
  })
})
    res.render("page.html");
});

0 个答案:

没有答案