Я пытался прочитать об этом здесь: https://developers.google.com/drive/api/v3/shortcuts
И я понимаю основы ярлыков, но не могу понять, как использовать это в коде - синтаксис.
Мне нужно вместо того, чтобы помещать папку в несколько папок, помещать ярлыки в эти папки, названные так же, как и исходная папка.
У меня есть исходная папка с именем Project1, помещенная в Черновики. Ярлыки для этой папки должны быть помещены в Папка 2 / Черновики, Папка 3 / Черновики и Папка 4 / Черновики.
Если я впоследствии изменю имя исходной папки Project1 ex. в «Новое здание» мне нужно найти ярлыки в папках 2, 3 и 4 (по идентификатору? - я могу поместить идентификатор ярлыков в таблицу, откуда я могу перебирать их) - а затем переименовать их как исходные новое имя папки.
И когда я перемещаю Project1 из Черновиков в Подтвержденные. Мне нужно переместить ярлыки из Folder2 / Drafts в Folder2 / Confirmed et c.
В основном так выглядел код basi c для размещения новой папки
var folder1 = draft.createFolder("DRAFT - "+"Project1");
var folder1Url = folder1.getUrl();
var folder1Id = folder1.getId();
folder2Draft.addFolder(folder1);
При изменении имени папки имя (конечно) изменится в других местах. Но, насколько я понимаю, с ярлыками дело обстоит не так. Я тестировал его с помощью созданных вручную ярлыков, которые подтвердили это.
Часть переименования, которая мне нравится при подтверждении проекта:
var folder1 = DriveApp.getFolderById(folder1Id);
var folder1NameOld = folder1.getName();
var folder1NameNew = folder1NameOld.replace("DRAFT - ","");
folder1.setName(folder1NameNew);
И я перемещаю файл при подтверждении проекта с помощью простой:
confirmed.addFolder(folder1);
draftsFolder.removeFolder(folder1);
Сценарий выполнен в виде электронной таблицы, и я уже поместил все идентификаторы папок в лист данных в файле, чтобы я мог очень легко ссылаться на разные папки и, при необходимости, также собирать Идентификаторы ярлыков, чтобы их можно было переименовать.
Обновление: чтобы задать более четкий вопрос: как это сделать с помощью ярлыков вместо использования нескольких родителей?
function shortcut() {
var s = SpreadsheetApp.getActive();
var sheet = s.getActiveSheet();
var projectFolderId = sheet.getRange('B1').getValue();
var folder1DraftId = sheet.getRange('B2').getValue();
var folder2DraftId = sheet.getRange('B3').getValue();
var folder1 = DriveApp.getFolderById(projectFolderId);
DriveApp.getFolderById(folder1DraftId).addFolder(folder1);
DriveApp.getFolderById(folder2DraftId).addFolder(folder1);
}