社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python程序员 • 9 年前 • 1244 次点击  

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