我想将Google表单用作网站上的联系表单,并将该表单的内容(不仅仅是通知)通过电子邮件发送到指定地址。
我创建了一个Google表单,并将其嵌入网站中以用作查询的联系表单。然后创建一个工作表以从表单中提取数据。之后,我为onFormSubmission创建了一个触发器,该触发器运行以下命令:
/**
* @OnlyCurrentDoc
*/
function onFormSubmission (e) {
var values = e.namedValues;
var htmlBody ='<ul>';
for (Key in values) {
var label = Key;
var data = values[Key];
htmlBody += '<li>' + label + ": " + data + '</li>';
Logger.log(label + ": " + data);
};
htmlBody += '</ul>';
GmailApp.sendEmail('me@gmail.com', 'Web Form Enquiry', '', {htmlBody:htmlBody})
}
运行此命令将显示一个对话,说明:
需要授权。
“发送电子邮件”需要您的许可才能访问Google上的数据 查看权限或取消
[“发送电子邮件”是G Suite中我的“应用”]
单击“查看权限”将打开一个弹出窗口,要求您选择一个帐户以继续。单击该帐户(与我登录时使用的同一帐户并创建了表单的帐户相同,依此类推)将显示:
此应用未经验证。此应用尚未得到Google的验证。仅在您了解并信任开发人员的情况下继续操作。
高级或安全返回
点击高级:
Google尚未审查此应用,因此无法确认其真实性。未经验证的应用可能会威胁到您的个人数据。
转到“发送电子邮件”(不安全)
然后说明:
“发送电子邮件”想要访问您的Google帐户
这将允许“发送电子邮件”阅读,撰写,发送和永久删除Gmail中的所有电子邮件
连接到外部服务(创建与任何外部服务的网络连接(例如,读取或写入数据)
确保您信任发送电子邮件
您可能正在与此网站或应用共享敏感信息。查看其服务条款和隐私政策,了解发送电子邮件如何处理您的数据。您始终可以在您的Google帐户中查看或删除访问权限。 了解风险
取消或允许
因此,出于测试目的,我单击了“允许”。一切都很好用!然后我使表单响应,然后我想起我必须回去查看权限。 4小时后,我迷失在兔子洞中,然后迷路地爬回了这里。所以我的问题是:
这是我第一次使用这些服务,所以希望我已经解释清楚了。
感谢您收到任何建议!
答案 0 :(得分:1)
我想将Google表单用作网站上的联系表单,并将该表单的内容(不仅仅是通知)通过电子邮件发送到指定地址。
- 我需要实施OAuth吗?
您正在做的是OAuth流程。但这是由应用脚本管理的。所以,不。
- Google是否需要验证应用程序?
不适合您的用例。
- 如果是2,这需要几个星期吗? (如果是,则可能需要放弃此解决方案)
也许更多
- 如果我给应用程序“允许的权限”(就像我进行测试那样),是否存在安全风险?
有权访问您脚本的任何人(暗示地,具有对电子表格的编辑访问权限的任何人)都可以更改脚本,以将电子邮件从您的帐户发送到任何其他网站,或者阅读或删除您的电子邮件。因此,请避免为电子表格或脚本提供编辑权限。
- 如果我为应用授予“宽松权限”,Google会对其进行审核并决定停止其运行吗?
如果您是唯一用户,则不会。
- 我可以想象需要OAuth的唯一原因是,数据是从Sheets中获取的,正在创建电子邮件并将数据传递给它。是否因为数据传递给与收集的数据不同的“服务”?还是因为其他服务指示创建电子邮件? (还是两者?)
是的
- 如果实施了OAuth,这是否意味着将要求用户进行验证?显然,他们无需登录即可使用网站上的联系表。
您是电子邮件,表格和表单回复的所有者。只有您需要授权该应用/脚本代表您执行某些工作,例如复制/粘贴。
- 是否可以将权限限制为例如仅撰写电子邮件,而不能删除帐户中的任何或所有电子邮件
是的。
- 如果我跳过电子表格(即通过表格发送电子邮件),会有所不同吗? (看不到,但以防万一。)
减少脚本流所需的跳数对安全性有好处。但是在请求的oauth流量/权限方面并没有太大的区别。您可以在表单本身中使用formsubmission trigger。但是请注意,您需要根据提交给表单的form上提供的事件对象重新设计脚本。这与提供给电子表格onformsubmit的事件对象不同。