我正在尝试使用他们的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");
});