Twitter流媒体问题使用Nodejs" Twit"

时间:2014-07-11 05:39:57

标签: node.js twitter

我只是尝试使用带有" Twit"的nodejs在Twitter上发送推文。 (npm)我的代码如下所示。

 stream = tweeter.stream('statuses/filter', { track: phrase, language: 'en' });
   var testTweetCount = 0;
    stream.on('tweet', function (data) { 
    var currentdate = new Date(); 
    var datetime = "Last Sync: " + currentdate.getDate() + "/"
            + (currentdate.getMonth()+1)  + "/" 
            + currentdate.getFullYear() + " @ "  
            + currentdate.getHours() + ":"  
            + currentdate.getMinutes() + ":" 
            + currentdate.getSeconds();
        console.log("stream started Successfully with "+filterText+"-  "+datetime);      
        //socket.emit('gotTweetss'); 
        var tweetText = JSON.stringify(data.text);
        if(tweetText){
            var Created_at=JSON.stringify(data.created_at);
            var User=JSON.stringify(data.user.screen_name);
            tweetCollection.count({text:tweetText,user:User,Created_at:Created_at}, function(err, existdata){
            /*  console.log("existdata                           :                  " + existdata);*/
                if(existdata > 0){
                    console.log("duplicate data : " + JSON.stringify(existdata));
                } else{

                    var tText=filterText.split(',');
                    var chekTrue=false;

                    for(iix=0;iix<tText.length;iix++)
                    {

                        var twData=tweetText.toUpperCase();
                        var txzt=tText[iix].trim();
                        if(twData.indexOf(txzt.toUpperCase())>-1)
                            {
                                console.log('true');
                                chekTrue='true';break;
                            }

                    }
                    if(chekTrue=='true'){

                    tweetCollection.insert([{text:tweetText,user:User,Created_at:Created_at}], {w:1}, function (error) {
                        if (error){
                            console.log("Error Occurred " + error.message);
                        } else{
                            // Wait for a second before finishing up, to ensure we have written the item to disk
                            setTimeout(function() {

                                // Fetch the document
                                tweetCollection.findOne ({text:tweetText}, function (err, item) {
                                    assert.equal(null, err);
                                    if(item!=null)
                                    assert.equal(tweetText, item.text);

                                })
                            }, 1000);
                        }
                    });
                    }
                }
            });
        }
        // socket.emit('gotTweet');
    });
    stream.on('error', function(error, code) {
        console.log("My error: " + error + ": " + code);
        /*if(code=="420")
        {
            io.sockets.emit('gotTweet');
        }*/
    });
    stream.on('delete', function(error, code) {
        console.log("My delete: : " + code);
    });

这是用于获取此流的流的启动流区域的代码 &#39;蠢&#39; NPM。它在流媒体启动时显示在控制台的日期和时间同步,它的工作正常。但有些时候推文没有得到正确的解决,当我在推特上发推文这个流媒体没有得到那条推文。有没有解决方案?

1 个答案:

答案 0 :(得分:0)

这是因为在twitter流中语言:&#39;&#39;

tweeter.stream('statuses/filter', { track: phrase, language: 'en' });

我只是删除了语言:&#39; en&#39;在上面的代码中它的工作完美

tweeter.stream('statuses/filter', { track: phrase });