首页 文章

如何使用Apps脚本获取Google日历活动附件

提问于
浏览
1

我编写了一个Google Apps脚本,可以成功将Google表格文档附加到新创建的日历活动中 . 以下代码显示了如何实现:

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 .

Calendar API Documentation似乎告诉我这是可能的 . 这取自文档:

[attachments [] . fileId,string]:附加文件的ID . 只读 . 对于Google Cloud 端硬盘文件,这是 Cloud 端硬盘API中相应文件资源条目的ID .

如果有人可以帮我把所有这些放在一起,并告诉我一个方法来获取附加的Google表格的ID,我将不胜感激!

谢谢 :)

瑞安

1 回答

  • 2

    您想要从事件中检索文件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) 表示 fields .

    参考文献:

    如果我误解你的问题,我很抱歉 .

相关问题