Google表单脚本添加邮箱至日历事件时出现ReferenceError: email is not defined错误的解决求助
Google表单脚本添加邮箱至日历事件时出现ReferenceError: email is not defined错误的解决求助
我本来以为这事挺简单的——我有个谷歌日历活动和一个仅包含邮箱输入字段的谷歌表单,想修改应用脚本实现:当用户提交表单里的邮箱地址后,自动把该用户添加到指定ID的谷歌日历活动中。
相关信息
- 目标日历活动:归属日历邮箱为
lb@emailindustries.com,事件ID为NmRsbDFvbGxmbHZnY2xhcHE3MWE5MWJ1bDEgbGJAZW1haWxpbmR1c3RyaWVzLmNvbQ - 谷歌表单:仅设置了一个邮箱输入字段,供用户提交邮箱
我编写的应用脚本
/** * Sends a calendar invite to the email address provided in the form response. * * @param {Object} e The form submit event object. */ function onFormSubmit(e) { // Get the form response. var itemResponses = e.response.getItemResponses(); // Get the email address from the form response. Assumes the *first* email field. // Better would be to search by question title or ID. var email = ""; for (var i = 0; i < itemResponses.length; i++){ if (itemResponses[i].getItem().getType() === FormApp.ItemType.TEXT){ email = itemResponses[i].getResponse(); Logger.log(email); break; // Stop after finding the first email field. } } if (!email) { Logger.log("No email address found in the form response."); return; // Exit if no email is found. } // Get the calendar event. var calendarId = "lb@emailindustries.com"; // Your calendar ID var calendar = CalendarApp.getCalendarById(calendarId); Logger.log(calendar); const eventId = "NmRsbDFvbGxmbHZnY2xhcHE3MWE5MWJ1bDEgbGJAZW1haWxpbmR1c3RyaWVzLmNvbQ" try { const event = calendar.getEventById(eventId); event.addGuest(email); Logger.log("Invite sent to " + email); if (event) { event.addGuest(email); Logger.log(`Invited ${email} to event ${event.getTitle()}`); return `Successfully invited ${email} to ${event.getTitle()}.`; // Success message } else { Logger.log(`Event with ID ${eventId} not found.`); return `Error: Event not found.`; // Event not found message } } catch (error) { Logger.log(`Error inviting ${email}: ${error}`); return `Error inviting ${email}: ${error.message}`; // Detailed error message } }
我已尝试的排查步骤
- 确认应用脚本项目已启用Google Calendar V3 API的访问权限
- 由于首次部署时未配置日历权限,后续重新完成了项目的授权操作
- 试过将脚本中的变量名从
email改为emailAddress,但依然触发完全相同的错误
现在我实在摸不着头脑,到底哪里出问题了?
备注:内容来源于stack exchange,提问作者LoriBeth Blair
相关产品推荐
相关产品推荐

