17611538698
webmaster@21cto.com

我是如何用自己的编程技巧,让航空公司找回丢失的婴儿车的?

资讯 0 1786 2018-03-12 12:02:35

21CTO社区导读:这是一则来自开发者真实的故事,他利于程序找回了自己孩子的婴儿车,看完之后,你会在生活找到更多灵感,用技术改善生活,你会越发觉得工程师力量大,自豪吧程序员。


1.jpg

 
去年夏天,我和妻子还有我们的两个孩子从匈牙利出发飞到加利福尼亚去拜访朋友。因为一些复杂的情况,我们坐的航空公司在飞行途中把我们的小童车弄丢了。
 
后来我与航空公司多次沟通,通过邮件、Twitter,先是友好的协商电话,再到愤怒的电话,够了,后来我要求航空公司赔付我们的费用。
 
于是我决定把事情提到新的高度。
 
我在Twitter创建了一个新帐号,专门用于回复这家航空公司的每一条推文,用以提醒他们留意我和他们的案子,这个案子已经被这帮伙伴拖延3 个多月了。
 
做为一名正直的程序员,我这样做不是为了报复和勒索金钱,我就是想让他们公平对待我们,承担丢失孩子的婴儿车费用。
 
我不是一个特别专业的程序员,我在freeCodeCamp技术社区得到了不少支持和灵感。为此,我是这么做的:
 
  1. 创建了一个新的Cloud9开发环境
  2. 创建一个Twitter帐号
  3. 使用Node.js创建了一个简单的Twitter机器人
  4. 配置这个机器人,每小时从10条预设消息中随机发布1条消息
  5. 然后,启动这个机器人

 
不到一个半星期,一笔钱打进了我的帐户,我给孩子们又买了一辆新的婴儿车。
 
我把全部源代码放在了GitHub仓库中,地址是:https://github.com/krizsoo/twitterbot。如果您处于这种类似状况,可以利用它快速反映。在中国,上不去Twitter,还有一个微博可以用,云主机可以用,也有其它云服务商可用,基本技术原理是类似的。
 
以下是我的详细步骤。
 
第一步:创建一个新的Cloud 9 IDE环境
 
我们一起前往Cloud9创建一个新工作区:
 

2.jpg

 
 
如果您想用我的Twitter机器人,只需在终端中输入以下命令克隆我的代码仓库:
 
git clonehttps://github.com/krizsoo/twitterbot
 
第一步:创建一个Twitter帐号和一个Twitter应用
 
如果您还没有一个Twitter帐号,请到https://twitter.com/signup创建一个。如果已经注册过,可以直接创建一个新的应用,这样可以很方便的调用Twitter的API和编程生成新的推文。
 
3.jpg

 
设置好您的应用程序基础信息,然后Twitter会提供给我们OAuth的4个安全密钥。

4.jpg

 
包括如下:
消费者(Consumer)密钥(APIKey)
消息者Secret(API Secret)
访问者令牌(Access Token)
访问者令牌Secret(AccessSecret)
 
请将您自己的密钥添加到代码中的config.js文件中。如下图:
 

5.jpg

 
 
第三步:配置Twitter机器人
 
我们需要做一些初始配置,确保机器人知道该怎样干活。
 
1.安装 Node.js依赖包
npm install –save twitter
 
2.设置搜索查询关键字
这是一个重要步骤,用以定义机器人对一个搜索查询并返回。我们可以编辑app.js文件来更新一些搜索参数。
 
q 为查询关键字
count 代表查询应该返回的推文数量
result_type 表示排序逻辑。在我们的示例中,它先显示最新的一条
lang 代表语言(例如English)
 
举个栗子,下列配置为自动回复最近包含“@freecodecamp”的tweet。
 
//设置你的搜索参数
var params = {
  q:'@freecodecamp',
 计数:1,
 result_type:“近期”,
 lang:'en'
}
 
第四步:配置推文
 
因为我们的机器人每小时就会跑一次,我不希望它一遍又一遍发发送同样的消息,这样多没技术含量和文学素养。所以,我创建了一个10条左右的数组,用来保存推文,Bot在执行时随时抽取一条发出。
 
 //设置可以随机选择的推文数组
var TWEETS_TO_REPLY = [
  “这是我推特的第一个版本”,
  “这是第二个,航空老大” ,
  “我的婴儿车啊,你在哪儿? “
];
 

说明:Twitter的API中不允许使用提及某人,即@某人。


 
6.jpg

 
 
第五步:配置发布频率
 
最后,我们来设置机器人每小时运行一次。首先,我们创建了一个以毫秒表示一小时的变量:
 
//设置tweet时间间隔
var INTERVAL = 1 * 60 * 60 * 1000;
 
接下来,确定启动了相应的机器人:
 
//启动机器人和计时器
BotStart();
setInterval(BotStart,INTERVAL);
 
第六步:机器人,启动
 
现在我们的配置完成,启动Bot,请耐心等待。
npm run serve
 
我们从事件中学到了什么
 
当机器人启动后,不到24小时,一位航空公司的客服代表和我取得了联系,他告诉我,航空公司已经启动了汇款程序。
 
这件事情,如果放在一年前,我可能无能为力。即使这是一件小事,这场胜利对我来说也是很重要的。
 
我在2017年开始学习编程,我从那个项目获得了一些额外的灵感。作为一名新开发人员,我没有尝试找新的工作,但是日常生活中,还有许许多多场合可以利用我们的开发技能。要不然,很多人都认为编码已经成为除了识字之外的第四技能。
 
希望对于所有正在学习软件开发的人们,从我的故事中找寻到一点灵感。在无数个深夜里,在你面对编程挑战时,记住你会以一位开发者的身份开始新的职业生涯,精深每一门计算机语言,一定会在某一天得到回报。
 
感谢您的支持。

作者:Kristóf Litavecz
编译:21CTO社区 - 亢小龙
地址:https://medium.freecodecamp.or ... 5e8b2


评论