Как получить вложение в календаре Google с помощью Apps Script
Я написал скрипт Служб Google, который успешно присоединяет документ 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});
Это все работает отлично. Сейчас я пишу скрипт для итерации всех событий за определенный период времени и получения идентификаторов прикрепленных файлов.
Я могу успешно получить события, о которых я говорю, но у меня возникают проблемы с доступом к идентификатору прилагаемого Google Sheet.
Похоже, документация к API календаря говорит, что это возможно. Это взято из документации:
[attachments [].fileId, string]: идентификатор прикрепленного файла. Только для чтения. Для файлов Google Диска это идентификатор соответствующей записи ресурса Файлов в Drive API.
Если бы кто-нибудь мог помочь мне собрать все это вместе и показать мне способ получения идентификатора прилагаемого Google Sheet, это было бы очень признательно!
Спасибо:)
Райан
1 ответ
Вы хотите получить идентификаторы файлов из события. Если мое понимание верно, как насчет этого примера сценария?
Пример скрипта:
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)
Замечания:
- В этом примере сценария предполагается, что вы уже знаете идентификатор события. Если вам нужен метод для получения идентификаторов событий. Пожалуйста, скажите мне.
- Если вы хотите получить идентификатор файла и имя файла вложения, пожалуйста, используйте
attachments(fileId,title)
заfields
,
Рекомендации:
Если я неправильно понимаю ваш вопрос, извините.