通过Google Sheets生成.ics会议邀请:侧边栏发送无响应排查
Google Sheets侧边栏发送会议邀请无响应排查
我正在通过Google Sheets API开发一个侧边栏,用于收集用户输入并向指定收件人发送会议邀请。用户输入的数据会存入sendEmail()函数的eventData映射,但点击侧边栏的「Send Email」按钮后毫无反应,无法定位问题原因。
相关GS代码片段
function generateICSContent(eventData) { var icsContent = "BEGIN:VCALENDAR\n" + "PRODID:-//Your Organization//Your App//EN\n" + "VERSION:2.0\n" + "METHOD:REQUEST\n" + "BEGIN:VEVENT\n" + "UID:" + Utilities.getUuid() + "\n" + "SUMMARY:" + eventData.get("title_subject") + "\n" + "DTSTART:" + eventData.get("startDate") + "T" + eventData.get("startTime") + "Z\n" + "DTEND:" + eventData.get("endDate") + "T" + eventData.get("endTime") + "Z\n" + "LOCATION:" + eventData.get("location") + "\n" + "DESCRIPTION:" + eventData.get("description") + "\n" + "END:VEVENT\n" + "END:VCALENDAR"; return icsContent; } function sendEmail(eventData) { SpreadsheetApp.getActive().toast("Sending email to " + eventData.get("email")); var icsContent = generateICSContent(eventData); var attachmentBlob = Utilities.newBlob(icsContent, "text/calendar", "meeting.ics"); MailApp.sendEmail(eventData.get("email"), eventData.get("title_subject"), eventData.get("body"), { attachments: [attachmentBlob] }); }
相关HTML代码
<!DOCTYPE html> <html> <head> <base target="_top"> </head> <script> function sendEmail() { var eventData = new Map(); eventData.set("email", document.getElementById('email').value); eventData.set("title_subject", document.getElementById('title_subject').value); eventData.set("startDate", document.getElementById('startDate').value); eventData.set("endDate", document.getElementById('endDate').value); eventData.set("startTime", document.getElementById('startTime').value); eventData.set("endTime", document.getElementById('endTime').value); eventData.set("location", document.getElementById('location').value); eventData.set("body", document.getElementById('body').value); google.script.run.sendEmail(eventData); } </script> <body> 收件邮箱: <input type="text" id="email"> <br> 会议标题/邮件主题: <input type="text" id="title_subject"> <br> 会议开始日期: <input type="text" id="startDate"> <br> 会议结束日期: <input type="text" id="endDate"> <br> 会议开始时间: <input type="text" id="startTime"> <br> 会议结束时间: <input type="text" id="endTime"> <br> 会议地点: <input type="text" id="location"> <br> 会议描述: <input type="text" id="body"> <br> <input type="button" class="button" value="发送邮件" onclick="sendEmail();"> </body> </html>
更新说明
我的侧边栏组件现已正常工作,可生成.ics附件发送给指定收件人,还支持添加Zoom会议ID,同时能根据活动单元格及空白行分隔的周边内容自动填充标题和描述信息。
内容的提问来源于stack exchange,提问作者Branden Hance
相关产品推荐
相关产品推荐

