这显然是twitter模块中的一个错误,正如这个答案所指出的:https://stackoverflow.com/a/30264645
尽管这是一个已知的问题,我已经在谷歌上搜索了几个小时,但无济于事。有人知道变通的办法吗?我的问题来自JSON。解析推特模块中的非json数据。
下面是完整的跟踪:
events.js:85
throw er; // Unhandled 'error' event
^
SyntaxError: Unexpected token U
at Object.parse (native)
at EventEmitter.receive (c:UsersColeDevelopmentNodeJSexamplenode_modulestwitterlibparser.js:41:21)
at IncomingMessage.<anonymous> (c:UsersColeDevelopmentNodeJSexamplenode_modulestwitterlibtwitter.js:207:14)
at IncomingMessage.emit (events.js:129:20)
at readableAddChunk (_stream_readable.js:163:16)
at IncomingMessage.Readable.push (_stream_readable.js:126:10)
at HTTPParser.parserOnBody (_http_common.js:132:22)
at TLSSocket.socketOnData (_http_client.js:317:20)
at TLSSocket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
在JSON.parse()
之前插入console.log(json)
到parser.js
(跟踪堆栈的第二次调用)将打印要解析的json。
这是我得到的:
Unknown URL. See Twitter Streaming API documentation at http://dev.twitter.com/pages/streaming_api
显然不是JSON,并解释了错误。但我为什么会得到这个?
我的节点代码(twitter.js
):
var twit = require('twitter');
var twitter = new twit({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});
twitter.stream('filter', {track: 'filter-term'}, function(stream){
console.log('help!');
});
node twitter.js
和node twitter
都会产生上述错误。什么可能导致这个"未知的URL…"字符串是我的JSON应该在哪里?
我明白了
twitter.stream('filter', {track: 'filter-term'}, function(stream){ ... });
应该twitter.stream('statuses/filter', {track: 'filter-term'}, function(stream){ ... });
最没用的错误信息