我很难通过Node连接到Tumblr API。 它甚至没有向我显示request_tokens让我继续
var OAuth = require('oauth').OAuth
var oa = new OAuth(
"http://www.tumblr.com/oauth/request_token",
"http://www.tumblr.com/oauth/access_token",
tumblrClientId,
tumblrClientSecret,
"1.0A",
tumblrCallback,
"HMAC-SHA1"
);
oa.getOAuthRequestToken(
function(error, oauth_token, oauth_token_secret, results) {
if (error) {
console.log(error);
res.send("Authentication Failed!");
}
else {
data = {
token: oauth_token,
token_secret: oauth_token_secret
};
console.log("OAuthToken"+data.oauth_token);
console.log("OAuthTokenSecret"+data.oauth_token_secret);
}
}
);
我的console.log语句的输出是: {}
答案 0 :(得分:0)
对于所谓的authorization_code
授权类型(网络应用OAuth流程),最好使用更复杂的东西,只有裸oauth
模块。
您可以使用Grant即Express,Koa和Hapi的OAuth中间件,它也支持Tumblr。
所以基本上你的代码看起来像这样(如果你使用的是Express):
var express = require('express')
, session = require('express-session')
var Grant = require('grant-express')
, grant = new Grant({
server:{host:'localhost:3000', protocol:'http'}
tumblr:{
key:'[CONSUMER_KEY]',
secret:'[CONSUMER_SECRET]',
callback:'/handle_tumblr_callback'
}
})
var app = express()
app.use(session({secret:'keyboard cat'}))
// mount grant
app.use(grant)
// other middlewares ...
对于OAuth应用中的redirect_uri
,您应该设置http://localhost:3000/connect/tumblr/callback
一般来说,OAuth有一个lengthy article,以及如何使用Grant。可以找到更多示例here。