利用 Google Apps Script 统计报名人数、发送通知邮件

281 views
Skip to first unread message

韩国恺

unread,
Apr 25, 2013, 11:36:07 AM4/25/13
to Beijing GTUG
这次北京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 这个神器。



luthur

unread,
Apr 25, 2013, 11:41:28 AM4/25/13
to beijin...@googlegroups.com

之前了解过。但是在墙内应用还是很尴尬

--
您收到此邮件是因为您订阅了 Google 网上论坛的“Beijing Google Developer Group (Beijing GDG)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 beijing-gtug...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 

im007boy

unread,
Apr 25, 2013, 12:59:06 PM4/25/13
to Beijing GTUG
可以用gmail刷邀请码,然后script读取gmail提取记录到Spreadsheet,再自动发到博客或微博上。偶这么干过,很好使;)

luthur

unread,
Apr 25, 2013, 1:01:08 PM4/25/13
to beijin...@googlegroups.com

好凶残

Reply all
Reply to author
Forward
0 new messages