Node.js Nodejs推特api 403

Node.js Nodejs推特api 403,node.js,twitter,twitter-oauth,http-status-code-403,Node.js,Twitter,Twitter Oauth,Http Status Code 403,我正在尝试将twitter api与nodejs 5.4.1一起使用,使用。最初,我的承载访问令牌似乎是正确生成的,但当我运行实际请求时,会不断收到错误消息。知道为什么吗 var R = require("request"); var stream = require('twitter'); var https = require('https'); var key = 'my-key'; var secret = 'my-secret'; var cat = key +":"+secret

我正在尝试将twitter api与nodejs 5.4.1一起使用,使用。最初,我的承载访问令牌似乎是正确生成的,但当我运行实际请求时,会不断收到错误消息。知道为什么吗

var R = require("request");
var stream = require('twitter');
var https = require('https');


var key = 'my-key';
var secret = 'my-secret';
var cat = key +":"+secret;
var credentials = new Buffer(cat).toString('base64');

var url = 'https://api.twitter.com/oauth2/token';

R({ url: url,
    method:'POST',
    headers: {
        "Authorization": "Basic " + credentials,
        "Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"
    },
    body: "grant_type=client_credentials"

}, function(err, resp, body) {

    var an = JSON.parse(body);
   console.log( an['access_token']);

   runIt(an['access_token']);
    console.dir(body); //the bearer token...

});



function runIt(key){

var options = {
host: 'api.twitter.com',
path: '/1.1/users/search.json?q=Twitter%20API&page=1&count=3',
headers: {
        'Host': 'api.twitter.com',
        'Authorization' : 'Bearer ' + key,
        'Accept-Encoding': 'gzip'
}
};

https.get(options,(res)=>{
        console.log(res.statusCode);
        console.log(res);
});

}

对于Twitter用户Api,您必须遵循适当的
oauth
步骤才能正常工作

最初,将有两个步骤的请求过程,将留给您用户的
令牌
机密

您将使用该信息通过HMAC-SHA1之类的方法对请求进行签名,这样您就可以从twitter访问数据,在这一步中可能会有所帮助

如需进一步了解,请参阅以下教程:

对于代码灵感:


403响应中的信息是什么?检查文档底部描述常见案例的部分