如何从特定帐户流式传输推文

时间:2017-06-28 17:19:09

标签: javascript node.js twitter

我正在使用twitter npm包试图从指定帐户中流式传输推文。

我无法浏览Twitter api文档,所以我有点困惑。

我可以点击REST端点以获取指定的用户推文信息:

    var client = new Twitter({});

    client.get('statuses/user_timeline', { screen_name: user }, function(error, tweets) {
      if(error) throw error;
      console.log(tweets);
    });

如何传输推文?它甚至可能吗?如果没有,我怎么能做到这一点?我希望这一点尽可能快速响应。

2 个答案:

答案 0 :(得分:0)

我编写了下面的代码,并且能够获取用户的最后20条推文并将其保存在文件log.txt中。

var Twitter = require('twitter');
var fs = require("fs");

//Your keys go inside {}
var client = new Twitter({});

//These are the parameters for the API call
var params = {
    screen_name: 'damiengold', //use damiengold instead of @damiengold
    count: 20
};

//Perform the API call and return data
client.get('statuses/user_timeline.json', params, function(error, tweets, response) {
    var dataToFile;
    if (!error) {
        for (var i = 0; i < tweets.length; i++) {
            console.log(tweets[i].created_at + " " + tweets[i].text);
            console.log("-------------------------------");

            dataToFile = tweets[i].created_at + " " + tweets[i].text + "\n-----------\n";

            //This block of code will append tweets to the file called "log.txt".
            fs.appendFile("log.txt", dataToFile, function(err) {

                // If the code experiences any errors it will log the error to the console.
                if (err) {
                    return console.log(err);
                }
            })
        }
    }

    console.log("Last 20 tweets are now displayed on the screen and saved in log.txt.");

});

答案 1 :(得分:0)

想出来......

    var stream = client.stream('statuses/filter', { follow: userId });

    stream.on('data', function(event) {
      console.log(event && event.text);
    });

客户端流阅读器会自动显示推文。

不幸的是,用户的screen_name无法使用,因此您必须事先找到它。