我正在尝试使用带有the twitter api as a guide的nodejs 5.4.1的twitter api。最初我的承载访问令牌似乎是正确生成的,但是当我运行actuall请求时,我不断收到'403 Forbidden'错误消息。知道为什么会这样吗?
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);
});
}
答案 0 :(得分:0)
对于Twitter用户Api,您必须遵循正确的oauth
步骤才能使事情正常运行。
最初会有两步请求流程,会让您留下token
和secret
用户。
您将使用该信息使用HMAC-SHA1等方法对请求进行签名,以便您可以从Twitter访问数据,node-auth在此步骤中可能会有所帮助。 Twitter Link - Authorizing requests
有关进一步了解,请参阅以下教程:
代码灵感: