我如何创建Twitterbot来帮助提高人们对抑郁症的认识

Node.js中的Twitterbot

本周,许多人为失去两个心爱的偶像而感到悲痛,这些偶像在所有公开场合都似乎拥有全部。 进一步证明,没有人能免受绝望和不足的感觉。 我可以亲自参与斗争,并表示支持#depressionisreal活动,以表达自己的支持,我创建了第一个Twitterbot: @ UreNotAlone0608。 它的基本功能是搜索包含我在params中定义的关键字的推文,然后将其转发。

通过本教程和其他文章,我发现了设置机器人的灵感。 其中包括有关如何配置节点,秘密密钥以及以后如何部署到Heroku的说明。 基本上,该机器人使用一个名为twit的Node模块,该模块与Twitter API交互,从而为REST端点提供查询和转发功能。 以下代码定义了参数:

 让retweet = function(){ 
让参数= {
问:“ katespade或anthonybourdain或抑郁症”,
result_type:'混合',
lang:'en'
}

对于关键字,我使用了“抑郁症”和两个引人注目的名称,并认为后者将继续在推文中提及,以引起人们对精神健康危机的更多关注。 result_type: 'mixed'将返回流行和最近的推文的组合。

每次机器人运行时,我都将查询限制为4条匹配的推文。 由于结果类型mixed ,有时我会收到一条错误message: 'You have already retweeted this Tweet. 据推测,该特定的推文是一种较早的流行类型。 然后,该应用将跳过转发该内容,而我一次不会获得4条转发。 最后,我添加了setInterval方法作为计时器,以每小时运行一次该应用程序(3600000ms)。

这是完整的源代码:

  const twit = require('twit'); 
  const config = { 
Consumer_key:process.env.consumer_key,
Consumer_secret:process.env.consumer_secret,
access_token:process.env.access_token,
access_token_secret:process.env.access_token_secret
}
  const Twitter = new twit(config); 
 让retweet = function(){ 
让参数= {
问:“ katespade或anthonybourdain或抑郁症”,
result_type:'混合',
lang:'en'
}
  Twitter.get('search / tweets',params,function(err,data){ 
如果(!err){
//如果没有错误,则返回所有4条推文并转发
for(让i = 0; i <4; i ++){
让rtId = data.statuses [i] .id_str;
Twitter.post('statuses / retweet /:id',{
id:rtId
},函数(错误,响应){
如果(响应){
console.log('成功转发');
}
如果(错误){
console.log(err);
}
});
}
}
其他{
console.log('无法搜索推文');
}
});
}
retweet();
setInterval(retweet,3600000); //每60分钟运行一次机器人

到目前为止,我的twitterbot一直表现出色,甚至赢得了一些关注者。 如果您想了解有关抑郁症的争论,或者只是对机器人感到好奇,请在Twitter上查看。