Node.js Twitter API上的“关注”问题

Node.js Twitter API上的“关注”问题,node.js,twitter,Node.js,Twitter,我正在做一个项目,我想关注两个独立的twitter帐户,并在每个帐户发出tweet时调用一个特定的函数。我正在使用twitterapi、Node.js和一个名为Twit的NPM模块 当一个帐户发推特时,我的工作没有问题,但这两个帐户都不行: 我相信我的问题可能在这里: var stream = T.stream('statuses/filter', { follow: ( userID1 , userID2 ) }); 如果我将follow设置为仅一个用户,那么它可以正常工作,但是对于两个用户

我正在做一个项目,我想关注两个独立的twitter帐户,并在每个帐户发出tweet时调用一个特定的函数。我正在使用twitterapi、Node.js和一个名为Twit的NPM模块

当一个帐户发推特时,我的工作没有问题,但这两个帐户都不行:

我相信我的问题可能在这里:

var stream = T.stream('statuses/filter', { follow: ( userID1 , userID2 ) });
如果我将follow设置为仅一个用户,那么它可以正常工作,但是对于两个用户,它将只对一个用户工作。此外,它只适用于列表中的第二个,因此如果其:userID1、userID2 only userID2可以工作。如果是userID2,userID1,则只有userID1可以工作

完整代码/逻辑如下:

//SetUp info

var Twit = require('twit'); // NPM twit package
var config = require('./config'); // the config file to allow me access Auth Keys etc
var T = new Twit(config);//run config file

 //end of setup

var userID1 = 'XXXXXXXXXXX1'; //TwitterAccount1
var userID2 = 'XXXXXXXXXXX2'; //TwitterAccount2


//these two lines set up the twitter API
var stream = T.stream('statuses/filter', { follow: ( userID1 ,  userID2 ) });  // here seems to be my issue?
stream.on('tweet', function (tweet) {


if (tweet.user.id == userID1 ) { // is tweet.user.id matches UserID1

  DoStuff_1(); //call this function

}  else if  (tweet.user.id == userID2 ) { // if tweet.user.id matches UserID2

DoStuff_2(); // call this function instead

}

 });

//Function for userID1
function DoStuff_1(){
console.log("Doing Stuff 1");
}

//Function for userID2
function DoStuff_2(){
console.log("Doing Stuff 2");

}

非常感谢您的任何建议

通过为第二个用户帐户建立一个单独的流,它似乎可以工作:

//SetUp info

var Twit = require('twit'); // NPM twit package
var config = require('./config'); // the config file to allow me access Auth Keys etc
var T = new Twit(config);//run config file

 //end of setup

var userID1 = 'XXXXXXXXXXX1'; //TwitterAccount1

//these two lines set up the twitter API
var stream = T.stream('statuses/filter', { follow: ( userID1  ) });  // here seems to be my issue?
stream.on('tweet', function (tweet) {


if (tweet.user.id == userID1 ) { // is tweet.user.id matches UserID1

  DoStuff_1(); //call this function

}  

 });


var userID2 = 'XXXXXXXXXXX2'; //TwitterAccount2

//Separate stream for UserID2

var stream = T.stream('statuses/filter', { follow: ( userID2  ) });  // here seems to be my issue?
stream.on('tweet', function (tweet) {

if  (tweet.user.id == userID2 ) { // if tweet.user.id matches UserID2

DoStuff_2(); // call this function instead

}

 });

//Function for userID1
function DoStuff_1(){
console.log("Doing Stuff 1");
}

//Function for userID2
function DoStuff_2(){
console.log("Doing Stuff 2");

}

你可以用一些小溪来做这一切;只需使用用户ID创建一个数组,并将其加入如下参数:

var userId = ['XXXXXXXXXXX1','XXXXXXXXXXX2']; 
var stream = T.stream('statuses/filter', { follow: userId.join(',') }); 

这可能是真的,但是任何超过2个流,您都会发现您的流开始断开连接,因此最好在follow参数中为一个流使用ID数组,而不要尝试使用多个流。