2

我需要从单个 Twitter 帐户流式传输推文,但我不确定我做错了什么。使用“跟踪”时,流工作正常(流式传输趋势主题)。但是当我使用“跟随”时,代码会中断。

我正在使用 ntwitter 模块。

这是代码:

var twitter = require('ntwitter');

var twit = new twitter({
  consumer_key: 'deleted',
  consumer_secret: 'deleted',
  access_token_key: 'deleted',
  access_token_secret: 'deleted'
});


twit.stream('statuses/filter', { follow:'@tbottt' }, function(stream) {
    stream.on('data',function(data){
      console.log(data);
    });
});

我收到这个错误

Error: Uncaught, unspecified 'error' event.
    at EventEmitter.emit (events.js:68:15)
    at ClientRequest.Twitter.stream (F:\Dropbox\work\socketio\node_modules\ntwitter\lib\twitter.js:251:14)
    at ClientRequest.EventEmitter.emit (events.js:88:17)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1455:7)
    at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23)
    at CleartextStream.socketOnData [as ondata] (http.js:1366:20)
    at CleartextStream.CryptoStream._push (tls.js:492:27)
    at SecurePair.cycle (tls.js:846:20)
    at EncryptedStream.CryptoStream.write (tls.js:227:13)
    at Socket.ondata (stream.js:38:26)
4

2 回答 2

5

我知道有点晚了,但我自己遇到同样的问题后发现了这个问题。

我发现您必须在请求中使用 twitter 用户的 ID 而不是屏幕名称。follow

有一些网站声称提供快速的 twitter 用户名 -> ID 搜索,但没有一个对我有用。相反,我发现如果您在包含来自用户的推文的页面上查看源代码并搜索data-user-id,您会发现它被列为 HTML 元素中的一个属性(通常第二次或第三次出现包含 ID)。

希望这可以帮助某人。

于 2013-06-21T17:19:04.120 回答
0

您必须使用用户 ID 而不是用户名。我在很长一段时间内都犯了同样的错误,但它并不完美。

示例代码 =>

var   Twit = require('twit');

var T = new Twit({
  consumer_key:         config.key.consumer_key,
  consumer_secret:      config.key.consumer_secret,
  access_token:         config.key.access_token,
  access_token_secret:  config.key.access_token_secret
});

var stream = T.stream('statuses/filter', { follow: 4708084272 })
stream.on('tweet', function (tweet) {
  console.log(tweet)
})
于 2017-08-14T10:29:27.377 回答