这次北京GDG的活动使用 Google docs 中的表单作为报名方式。
报名数据会汇总到 Google docs 中的一个电子表格里。每个人提交一次表单就是表格里的一行。
当然,电子表格本身就很强大,做个统计是很容易的。但是我想更加自动化的处理数据。于是我发现
了 Google Apps Script 。这个东西很强大,是 Google 的云端脚本,可以用脚本操作 Google
docs、 Gmail 等很多 Google 的产品。一个好处是自动化实现一些功能,另一个好处可以整合多种服务功能。
Google Apps Script 其实就是 Google 各种服务的 JavaScript API,只是在云端执行。
应用一:去除重复的报名
我发现个别人重复提交了表单,这样表格中会出现重复的内容,所以实际人数会比表格中的行数要少。
那么我可以用一小段脚本统计来统计去重后的人数,以 Email 那个字段作为唯一标示即可。
比如:SpreadsheetApp.getActiveSheet().getDataRange().getValues(); 就能获得表格中的所有数据,
也就是一个二维数组。既然数据都有了,那用 JavaScript 遍历一遍数据做个去重和统计是很简单的。
然后用 Logger.log() 打印出结果就可以。
应用二:发送报名确认邮件
大家报完名之后,最后我们还要给参会者发确认邮件(现在很没法呢,快了)。
但是那么多人,一个个手工发很麻烦呀。可以用一小段脚本,读取表格数据,调用 Mail 服务发送邮件就可以。
首先,还是用 Spreadsheet API 去掉重复的数据,然后提取出姓名和 Email 字段。
然后,利用模版或字符串拼接生成要发送的邮件内容。
最后,调用 MailApp.sendEmail(emailAddress, subject, message); 发送邮件即可。
当然,发送通知邮件的方案也很多。比如,可以把数据导出来,然后用 Java、Python 等语言写个邮件
发送的程序。
另外,发送邮件有一点要注意的。很多邮件服务是有发送配额限制的,所以可能会发送失败。
解决方法就是把已发送成功的记录下来,然后下次重复执行程序的时候只针对还没有发送邮件的人。
上面说的这两个脚本已经写好,代码也不多。主要是想结合实际用例,给大家展示一下 Google Apps Script 这个神器。