如何使用Apps Script获取Google日历事件附件

3

我写了一个Google Apps Script脚本,成功地将Google Sheets文档附加到新创建的日历事件中。以下代码展示了如何实现:

var eventObj = { 
    summary: eventName,
    start: {dateTime: startDate.toISOString()},
    end: {dateTime: endDate.toISOString()},
    attachments: [{
      'fileUrl': 'https://drive.google.com/open?id=' + fileID,
      'title' : 'Booking Sheet'
    }]
  };
  
  Calendar.Events.insert(eventObj, inStorePartiesCalendarID, {'supportsAttachments': true});

这个部分工作完美运行。现在我正在编写一个脚本来迭代一定时间段内的所有事件,并获取那些附加文件的ID。
我能够成功获取我需要的事件,但是无法访问附加Google表格的ID。

[attachments[ ].fileId, string] : 附加文件的ID。只读。 对于谷歌Drive文件,这是驱动器API中相应的Files资源条目的ID。

看起来日历API文档告诉我这是可能的。
如果有人能帮我把这些整合起来,并向我展示一种获取附加Google表格ID的方法,那就太感激了!
谢谢:)
Ryan
1个回答

3
您想从事件中检索文件ID。如果我理解正确,可以使用以下示例脚本:

示例脚本:

var inStorePartiesCalendarID = "### calendar ID ###";
var eventId = "### Event ID ###";
var res = Calendar.Events.get(inStorePartiesCalendarID, eventId, {fields: "attachments/fileId"});
var fileIds = res.attachments.map(function(e){return e.fileId});
Logger.log(fileIds)

注意:

  • 此示例脚本假定您已经知道事件ID。如果您需要检索事件ID的方法,请告诉我。
  • 如果您想要检索附件文件的文件ID和文件名,请在字段中使用attachments(fileId,title)

参考资料:

如果我误解了您的问题,我很抱歉。


这太棒了!现在一切都运行得非常完美 - 谢谢 :) - Ryan
@Ryan Saffer 欢迎。很高兴你的问题得到了解决。 - Tanaike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接