簡體   English   中英

無法在Node.js中獲取Tumblr API OAuth請求令牌

[英]Unable to get Tumblr API OAuth Request token in Nodejs

我很難通過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語句的輸出是:{}

對於所謂的authorization_code授予類型(Web應用程序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以及如何使用Grant的文章很長 這里可以找到更多示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM