"SyntaxError: Unexpected token U" 使用 node.js Twitter 模块



这显然是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.jsnode twitter都会产生上述错误。什么可能导致这个"未知的URL…"字符串是我的JSON应该在哪里?

我明白了

twitter.stream('filter', {track: 'filter-term'}, function(stream){ ... });
应该

twitter.stream('statuses/filter', {track: 'filter-term'}, function(stream){ ... });

最没用的错误信息

最新更新