В Google проект Google Apps Script хранится на Google Диске как один файл проекта. Если вы загрузите его через синхронизацию с Google Диском и откроете локально, он будет содержать только идентификатор проекта. Однако если вы получите доступ к этому файлу на самом Google Диске, в нём будет все содержимое проекта в формате JSON.
Дело за малым — разобрать json, и сохранить содержимое «виртуальных» файлов в виде физических файлов соответствующего формата.
function main() {
// This is the id of the script we want to export
var scriptID = '***************************************************',
// This is the id of the folder on Google Drive to which we will export
targetFolderID = '******************************';
var file = Drive.Files.get(scriptID);
var url = file.exportLinks['application/vnd.google-apps.script+json'],
options = {
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
}
};
var response = UrlFetchApp.fetch(url, options);
var files = JSON.parse(response).files;
var folder = DriveApp.getFolderById(targetFolderID);
for (var i = 0; i < files.length; i++) {
var file = files[i],
fileType = file.type,
fileName = file.name,
fileSource = file.source;
if (fileType == 'server_js') {
fileType = 'gs';
}
folder.createFile(fileName + '.' + fileType, fileSource);
}
}