Py学习  »  Python

婚礼小记:用Twilio,Python和Google打造我的自动化婚礼

Python程序员 • 6 年前 • 959 次点击  

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

2016年9月3日对于大多数人来说是一个平凡的一天,但对于我来说却是一个永远都无法忘记的一天,因为这一天是我的婚礼。

当举办一场婚礼时,有许多事情需要我们考虑,比如,食物,装饰,鲜花,住宿,交通,娱乐项目以及婚礼举办的场所等等各种方面。同时,还有许多其它未知的事情。在这里,我唯一可以确定的就是,到时将会有许许多多随处可见的表单。当看着越来越多的条目时,我开始思考是否有一个更好的方式来解决这个问题?纯手工来整理这些项目实在是太低效了,是时候用技术来改善这一状况了!

不必惊讶,邀请人们来参加婚礼通常是昂贵的(超过380磅)。首先,你需要发一个婚礼日期的请柬以及有关婚礼具体安排的邀请函。而这通常是很慢的,因为你不得不通过邮寄的方式来发送。然后你需要随时查看人们是否收到了请柬以及是否能够来参加婚礼,这个可以用自动化的过程来实现,不是吗?最后,邀请函通常是一次性的而且很容易丢失和放错地方,而这些都是非常不环保的。

回到列表的话题上,我要收集的列表内容一般分成下面几个部分:

  1. 你想要邀请人的名单

  2. 回复你请柬人的名单

  3. 能够确定参加婚礼的人的名单

  4. 确定参加婚礼的人选择的食物列表

有个汇总的列表总是好的,因为列表实际上是预先定义好的要求和格式,这样很有助于自动化完成它们。

信息整理

不考虑年龄的话,每一个参加婚礼的人都有一个手机,而这意味着我可以用Twilio来解决这个问题。如果你想看这部分的代码,可以看这个网址:

https://github.com/SeekTom/Twilio/tree/master/Wedication

短信是我最好的选择,我可以快速高效发出大量的信息并且处理它们。在考虑软件架构与数据库时,我只想要一个容易分享的东西而不想浪费时间在视图显示上。尽管在python的表格管理gspread库上遇到了一些麻烦,但是最终还是能够使我读取和写入谷歌的电子表单。虽然这不是最快的选择,可是它足够灵活并且提供了一个易于访问和可读的输出。

在最初的回复中,我列出了下面的项目:

  • 姓名

  • 电话号码

  • 确认状态

  • 联系细节状态

  • 短信数量(包括总共发出的和随后回复的)

当这些数据都收集完成之后,我用gspread遍历这个列表向每个有手机号码的客人发送邀请短信。
具体代码如下:

因为短信看起来有点单调,我用unicode加入了一些样式,最终接收到短信的人就像一个幸运的受邀者,效果如下;

接下来,我用Flask作为我的网页服务器,将指向/messages的链接创建一个简单的if语句来进行恢复(yes,no)
代码如下:

我的第一个短信是在2月19号早上8:37发出的,在三分钟之后就收到了第一个确认回复。到了9:38我已经收到了23个回复,达到了32%的接收率。两天之后经过初始的大量信息的发送,已经有58%的客人确定回复了。尽管取得了不错的的效果,我的妻子并没有把我的短信作为婚礼邀请服务给卖出去,所以我打算再加入一些功能。
之后,我又加入了一些统计功能,可以算出到场的客人名单并按要求进行回复,同时给新娘即时反馈客人名单的形成过程。这个代码是很简单的,因为我之前已经在电子表单里设置了一些基本的计数器,只要把这些单元格的内容添加到短信里就行。

这是最终的短信效果:

虽然不是很完美,但是很管用。
结果表明Lauren有效的缓解了这方面的压力,可以很好的反馈出客人的状态。从那时起,所有的系统都运行起来,短信也被融入了更多关于婚礼方面的信息。许多信息是显而易见的,例如当向婚礼网站进行直播时发送一个通知,还有分享一下礼物列表以及那些我一直引以为豪的人。

食物,光荣的食物

完成客人的回复后,最耽误时间的地方在于让客人确认食物。你会发现它是多么的困难让人们选择免费的食物。第一步就是另发送一个短信告诉参加婚礼的人到特定的网址上以Google表单的形式选择他们的食物。这个过程是很标准的,给客人填写数据的表单都是一样的,所以我现在有了参加婚礼人的填写好的食物选择表单。通常我可以慢慢的等客人选择他们的食物,但是我的婚礼背后有Twillio,这意味着我可以以最小的代价来追踪客人需求的变化。
这些数据需要与参加婚礼的客人名单相匹配,一旦匹配成功就更新客人的食物列表。虽然这需要花费一点功夫,但是一旦这个代码完成,我就可以根据需求批量运行这些脚本,在短信上得到最新的参加婚礼人的选择。

现在已经有了一个确认参加婚礼人的名单以及越来越多的食物列表。通过主程序将这些统计数据公开是有意义的,需要做的就是将相关单元格的内容提取出来并用短信进行回复。

这是非常方便的,向婚礼餐饮提供者提供我们的进展以及有关谁没有选择食物的数据。整个过程都是在自动化的过程中进行的,通过遍历参加者的名单,找到那些没有选择食物的客人并向他们发送通知。

随着那最重要的一天的来临,唯一需要做的事就是发送最后一个短信,提醒客人一些基本的细节,记得带一把伞来预防英国这总是下雨的夏季时间。

总结

举办一场婚礼从来都不是一件简单的事情,许多事情都不在你的控制范围之内。自动收集信息的过程提供了一种直接可以和客人沟通的过程,可以随时追踪和回复客人的要求。这使我的生活更加容易,帮助我不必将时间浪费在琐碎的事情上,可以将精力集中在重要日子的其它更重要的事情上。
另外,构建复杂问题的可扩展解决方案从来都不是一件容易的事,即使在最后,我的应用程序有时也是很脆弱的。我已经计划建立一个更完整的解决方案,包括数据可视化,语音集成以及更少的依赖CLI脚本。总而言之,我是非常高兴它最终能够很好的运行,没有任何一个通讯系统是完美的,你需要通过实践来找到最适合你的,无论是短信,语音,聊天还是视频。
如果你想和我讨论婚礼的自动化,可以在推特上找我@seektom



英文原文:https://www.twilio.com/blog/2017/04/wedding-at-scale-how-i-used-twilio-python-and-google-to-automate-my-wedding.html
译者:Mr  Chen



原文
今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/weixin/zcKO6XYiFP
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/2034
 
959 次点击