【发布时间】:2016-09-19 20:27:52
【问题描述】:
我在接收来自 Twitter 的 get 调用的工作输出时遇到问题。
这是我的代码和产生的错误:
var twitter = require('twitter');
var twit = new twitter({
consumer_key: '...', (removed keys and secrets)
consumer_secret: '...',
access_token_key: '...',
access_token_secret: '...'
});
twit.get('trends/place', 1, function(error, data, response) {
if(error) {
throw error;
}
var parseTrend = JSON.parse(data);
console.log(parseTrend);
});
这会杀死我的代码并引发以下“错误”:[object Object]
第二种get方法:
twit.get('search/tweets', {q: 'node.js'}, function(error, tweets, response) {
var parseTrend = JSON.parse(tweets);
console.log(parseTrend);
console.log(tweets.length);
});
这会导致错误:状态代码:406
我的语法是否有问题,或者此时 npm 包的 get 方法可能存在问题?
值得注意的是,我也在使用 client.stream() 方法,该方法运行良好。 所以我认为我在密钥或 oAuth 方面没有任何问题。
还有其他人有问题吗?
【问题讨论】:
-
我承认我只使用了 twit 模块。但根据文档,该模块似乎将对象的键/值对转换为 URL 参数。您是否尝试将
id属性设置为1的对象作为trends/place调用的第二个参数传递? -
刚试过:
twit.get('trends/place', {id: 1}, function(error, data, response)但它返回了状态码:406 错误,就像其他 get 方法一样。 -
也尝试了将属性作为字符串“
{id: '1'},结果相同。 -
好的,我刚刚使用 node-twitter 模块尝试了这两个调用,并且在我删除 JSON.parse 语句后它们在我这边运行良好。我应该注意,模块提供的响应已经是 JSON 格式的有效对象,因此
JSON.parse调用应该抛出Unexpected token o in JSON at position 1错误。你确定你的钥匙一切都是正确的吗? (如果您的client.stream通话有效,我想它是有效的,但仔细检查不会有什么坏处。) -
我注释掉了
JSON.parse语句,控制台日志确实输出了一些新信息,但随后又抛出了事件错误,状态为:406。新日志包含JSON数组:@ 987654332@然后报错。
标签: javascript node.js twitter get