Я довольно близок к завершению проекта сценария Служб Google, в котором анализируется простое двухстрочное электронное письмо и добавляется ссылка на вложение (вложение, сохраненное на Google Диске) в Google Sheets.
Я застряло сохранении вложения электронной почты в Google Drive. Код, который закомментирован, является блоком, который работает неправильно. Я взял пример из: Сохранение вложений Gmail на Google Диске - Но, похоже, он не работает для меня.
В приложении мой полный код.
function parseEmailMessages() {
var threads = GmailApp.search('label:test',0,100);
var sheet = SpreadsheetApp.openById('<<SHEET ID>>');
var folder = DriveApp.getFolderById('<<FOLDER ID>>');
var testLabel = GmailApp.getUserLabelByName('test');
var doneLabel = GmailApp.getUserLabelByName('finished');
for (var i = 0; i < threads.length; i++) {
var message = threads[i].getMessages();
for (var j in message) {
var content = message[j].getPlainBody();
/*
var attachments = threads[j].getAttachments();
for (var k in attachments) {
var attachment = attachments[k];
var isDefinedType = checkIfDefinedType_(attachment);
if (!isDefinedType) continue;
var attachmentBlob = attachment.copyBlob();
var file = DriveApp.createFile(attachmentBlob);
}
*/
}
var [name, date] = content.split("\n");
function latestFile() {
var gDriveFolder = DriveApp.getFolderById('<<FOLDER ID>>');
var gDriveFile = gDriveFolder.getFiles();
var lastFileId = gDriveFile.next().getId();
return lastFileId.toString();
}
var urlStart = 'https://drive.google.com/a/<<DOMAIN>>/file/d/';
var urlString = latestFile();
var urlEnd = '/view?usp=drivesdk';
var pic = urlStart + urlString + urlEnd;
sheet.appendRow([name,date,pic]);
threads[i].removeLabel(testLabel);
threads[i].addLabel(doneLabel);
}
}
Я получаю сообщение об ошибке: «TypeError: Невозможно найти функцию getAttachments в объекте GmailThread.»
Это правда, что getAttachments не является частью GmailThread в документации, но я не уверен, как это сделать. достичь моей цели на данный момент.