【问题标题】:Twitter API, Multiple User ID StreamTwitter API,多用户 ID 流
【发布时间】:2018-07-11 03:26:17
【问题描述】:

我正在使用 Node.js 和 Twitter API 处理流数据。这是我导入正确依赖项后的代码:

param =  {track: 'syria'}
twitterClient.stream('statuses/filter',param,function(stream) {
  stream.on('data', function(tweet) {
   console.log(tweet.text)
  });

  stream.on('error', function(error) {
    console.log(error);
  });
});

如何将多个参数传递给“状态/过滤器”搜索?我希望能够按多个搜索词进行过滤。我知道与 Twitter 的 REST API 的“q”参数有关,您只需将它们作为单个字符串传递,用空格分隔。我已经尝试将它们作为 STREAM API 的数组传递,正如 Twitter 文档中所说的 here,但没有运气。

同样,我希望能够跟踪多个用户。现在,我正在使用“statuses/filter”参数将我的流缩小到一个用户,但我不知道如何传递多个用户 ID。我的一位用户的代码如下所示:

 param =  {follow: '17594077'} // The ID of the account I want

 twitterClient.stream('statuses/filter',param,function(stream) {
   stream.on('data', function(tweet) {
      console.log(`Sent message: `, message.body);
   });

   stream.on('error', function(error) {
     console.log(error);
   });
 });

例如,当我尝试为 Twitter ID 传递多个值时,我的代码如下所示:

param =  {follow: ['17594077','239548513']} // The IDs of the account I want

 twitterClient.stream('statuses/filter',param,function(stream) {
   stream.on('data', function(tweet) {
      console.log(`Sent message: `, message.body);
   });

   stream.on('error', function(error) {
     console.log(error);
   });
 });

这给了我以下错误:

Error: Status Code: 401
    at Request.<anonymous> (/Users/harrisoncramer/Desktop/newBot/node_modules/twitter/lib/twitter.js:277:28)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at Request.onRequestResponse (/Users/harrisoncramer/Desktop/newBot/node_modules/request/request.js:1068:10)
    at emitOne (events.js:116:13)
    at ClientRequest.emit (events.js:211:7)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:551:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:117:23)
    at TLSSocket.socketOnData (_http_client.js:440:20)
    at emitOne (events.js:116:13)

我做错了什么?

【问题讨论】:

  • 401 表明您没有针对 twitter api 正确进行身份验证。您是否已验证您的凭据正确且能够成功连接?
  • 是的,我可以连接。我已经能够为 GET 请求使用相同的节点应用程序。

标签: javascript json node.js api twitter


【解决方案1】:

对于您的多用户请求,请尝试:

param = {follow: '17594077,239548513'}

来自api documentation:

follow   optional   A comma separated list of user IDs, 

【讨论】:

  • 啊,非常感谢!我想我很困惑,我认为逗号分隔的列表意味着一个括号列表,这在 Javascript(我正在编码的语言)中是正常的。谢谢!
猜你喜欢
  • 2020-03-06
  • 2012-03-23
  • 2013-06-13
  • 1970-01-01
  • 2011-11-10
  • 2019-09-23
  • 2015-11-19
  • 2011-09-05
  • 1970-01-01
相关资源
最近更新 更多