Node.js 无法在Nodejs中获取Tumblr API OAuth请求令牌

Node.js 无法在Nodejs中获取Tumblr API OAuth请求令牌,node.js,oauth,tumblr,Node.js,Oauth,Tumblr,我很难通过Node连接到tumblrapi。 它甚至没有给我看请求令牌,让我继续 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", tumblrCal

我很难通过Node连接到tumblrapi。 它甚至没有给我看请求令牌,让我继续

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);


        }
      }
    );
my console.log语句的输出为: {}

对于所谓的authorization\u code grant类型的web app OAuth流,最好使用比裸OAuth模块更复杂的东西

可以使用哪个是OAuthTebug中间件,用于支持Express、膝关节炎和HAPI,并且支持TUBLR。 因此,在使用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应用程序中的重定向uri,您应该设置http://localhost:3000/connect/tumblr/callback

关于OAuth以及如何使用Grant有一个大致的概念。可以找到更多的例子