我正在使用 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);
});
});
如何将多个参数传递给“statuses/filter”搜索?我希望能够按多个搜索词进行过滤。我知道如何处理 Twitter 的 REST API 的“q”参数,您只需将它们作为单个字符串传入,并用空格分隔。正如 Twitter 文档所说 here,我已经尝试将它们作为 STREAM API 的数组传入,但没有运气。
同样,我希望能够跟踪多个用户。现在,我正在使用“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)
我做错了什么?
最佳答案
对于您的多用户请求尝试:
param = {follow: '17594077,239548513'}
follow optional A comma separated list of user IDs,
关于javascript - Twitter API,多用户 ID 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48551994/