我正在使用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);
});
如何传输推文?它甚至可能吗?如果没有,我怎么能做到这一点?我希望这一点尽可能快速响应。
答案 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无法使用,因此您必须事先找到它。