Tumblr.js 401 Unauthorized

时间:2017-07-30 09:48:48

标签: node.js api reactjs npm tumblr

这有什么问题?

var tumblr = require('tumblr.js');
var client = tumblr.createClient({
  consumer_key: '...',
  consumer_secret: '...',
  token: '...',
  token_secret: '...'
});

client.userInfo(function (err, data) {
    if (err)
        console.log(err);
    console.log(JSON.stringify(data,null,'\t'));
});

每个密钥都在其位置,无论如何都在Chrome控制台" 401未授权"! 我在本地主机上使用' simple-react-app'和官方' tumblr.js'模块。它可以是什么?顺便说一句博客的方法工作正常,但对于用户 - 信息,破折号,都失败了。 enter image description here

1 个答案:

答案 0 :(得分:2)

401 Unauthorized

  

如果请求已包含授权凭据,则401响应表示已拒绝授权这些凭据。

请参阅:W3/protocols

在浏览器中

  

由于CORS限制,您将很难在浏览器中使用此库。虽然Tumblr API上的GET端点支持JSONP,但此库不适用于浏览器内使用。遗憾!

https://github.com/tumblr/tumblr.js/#in-the-browser

跨源资源共享(CORS)

  

跨域资源共享(CORS)机制为Web服务器提供跨域访问控制,从而实现安全的跨域数据传输。现代浏览器在API容器中使用CORS(例如XMLHttpRequest或Fetch)来降低跨源HTTP请求的风险。

请参阅:MDN

Tumblr控制台

在此处尝试使用您的代码,并查看您的api密钥和令牌(如果错误则会导致401错误)

https://api.tumblr.com/console/calls/user/dashboard

Tumblr Api

您可以使用普通的api(这只是node.js的包装器):

只需执行GET请求:

api.tumblr.com/v2/user/info

请参阅:API

的SuperAgent

  

SuperAgent是一个小型渐进式客户端HTTP请求库,Node.js模块具有相同的API,具有许多高级HTTP客户端功能。

request
  .get('http://api.example.com')
  .auth('user', 'pass123')
  .end(callback);

请参阅:Docs

实施例

  

注意:这只是tumblr.jsreact的快速而肮脏的实现,请不要直接使用此代码,而是自行实现。

顺便说一句:欢迎PR!

github/btzr-io/react-tumblr

设置:安装依赖项并运行npm start以启动服务器

 npm install & npm start

使用MasterKey中的实际代币/键重新dist/server.js

// Authenticate via OAuth
const tumblr = require('tumblr.js');
const client = tumblr.createClient(MasterKey);