我有一个本地运行的节点(快速)服务器,我正在尝试向Twitter /trends/place端点发送GET请求。我使用this twitter NPM package来促进。我的理解是我已经获得了插入API的正确的消费者密钥,消费者秘密,访问令牌和访问令牌秘密。我在dev.twitter网站上为我的应用程序生成了它们。
目前我收到code: 32 message: 'Could not authenticate you.
错误。我已尝试使用和不使用参数{id: 1}
对象。我测试了使用Twitter oauth生成器生成的curl语句(参见链接1)并且它成功了。我已确认这四个密钥都是从creds.js
正确导出并使用控制台日志正确导入server.js
。我不能正确理解这个NPM包吗?
下面的代码,减去前端和不相关的处理:
server.js
var express = require('express');
var app = express();
var twitterAPI = require('twitter');
//just storing these as plaintext, pulled straight off the oath
//twitter tool
var secrets = require(__dirname + '/creds.js');
var twitter = new twitterAPI({
consumerKey: secrets.consumerKey,
consumerSecret: secrets.consumerSecret,
access_token_key: secrets.accessToken,
access_token_secrets: secrets.accessTokenSecret
});
//send a get request to trends/place
twitter.get('trends/place', {id: 1}, function(error, tweets, response){
console.log('myerror is: ', error);
});
app.get('/', function(req, res){
res.send('test');
});
app.listen(process.env.PORT || 3000, function(){
console.log("Prompter listening on port 3000.");
});
的package.json
{
"dependencies": {
"express": "^4.13.4",
"twitter": "^1.2.5"
}
}
我console.log()
'是响应对象,其上的标题是:
GET /1.1/trends/place.json?id=1 HTTP/1.1\r\nAccept: */*\r\nConnection: close\r\nUser-Agent: node-twitter/1.2.5\r\nhost: api.twitter.com\r\nAuthorization: OAuth oauth_consumer_key="null",oauth_nonce="(hidden for stackoverflow)",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1459220083",oauth_token="(hidden for stackoverflow)",oauth_version="1.0",oauth_signature="(hidden for stack overflow)"\r\ncontent-length: 0\r\n\r\n',
因此,您不必向右滚动,有趣的是:
oauth_consumer_key="null"
为什么那会是空的而其他一切都是正确的?