如何通过GET请求实现Google Forms提交并触发邮件回执
解决Google Forms通过API提交并触发邮件回执的问题
前提准备(必须先完成)
- 打开目标Google Forms,进入设置:
- 勾选「收集电子邮件地址」,确保表单开启邮箱收集(这是触发回执的基础)
- 切换到「发送电子邮件回执」选项,选择「回复者」,启用回执功能
正确的GET请求参数格式
Google Forms提交请求必须严格遵循规则,否则即便返回200 OK也不会记录数据:
- 完整请求路径:必须包含表单ID,格式为
https://docs.google.com/forms/d/e/[你的表单ID]/formResponse - 字段参数:每个表单字段对应
entry.xxxxxx=值,其中xxxxxx是字段唯一ID(可从预填充链接或表单页面源码中获取)- 邮箱字段必须使用其对应的
entry.xxxxxx参数,而非单独的emailAddress(该参数无效)
- 邮箱字段必须使用其对应的
- 回执触发参数:正确拼写为
emailReceipt=true(注意是Receipt,不是Reciept,拼写错误会导致回执失效) - 提交标识:必须携带
submit=Submit参数
常见问题排查(请求200但无数据记录)
- 字段ID错误:每个字段的
entry.xxxxxx必须与表单实际字段一一对应,获取方式:- 打开表单,点击「更多」→「获取预填充链接」,填写内容后生成链接,链接中的
entry.xxxxxx即为对应字段ID - 查看表单页面源码,搜索
entry.提取所有字段ID
- 打开表单,点击「更多」→「获取预填充链接」,填写内容后生成链接,链接中的
- 必填字段未填充:若表单有必填项,请求中必须携带对应字段参数,否则提交无效
- 参数拼写错误:比如把
emailReceipt写成emailReciept(少一个e),这是高频出错点 - 请求路径不完整:必须包含完整表单ID路径,不能仅写
/formResponse
单次GET请求示例
假设表单ID为123ABCxyz,邮箱字段entry ID是123456,姓名字段entry ID是789012,完整请求链接如下:
https://docs.google.com/forms/d/e/123ABCxyz/formResponse?submit=Submit&entry.123456=user@example.com&entry.789012=张三&emailReceipt=true
注意事项
- 建议通过网站后端服务发送请求,避免前端JS直接请求触发的CORS限制(Google Forms不允许前端跨域提交)
- 测试时可直接在浏览器地址栏输入请求链接,验证表单是否收到数据、用户是否收到回执
内容的提问来源于stack exchange,提问作者Jonathan
相关产品推荐
相关产品推荐

