Я работаю над скриптом Google App, который должен создать новые Google TeamDrives. Я являюсь суперадмином в своем домене, и когда я пытаюсь выполнить код (написанный в соответствии с предложением завершения кода App Script), я получаю сообщение об ошибке:
Не удалось вызвать API-интерфейс для drive.teamdrives.insertс ошибкой: Недостаточно прав для этого файла (строка 288, файл «Код»)
У меня возникли проблемы с поиском документации, которая строго относится к App Script, поэтому я пытаюсь адаптировать APIнайденный здесь метод: https://developers.google.com/drive/api/v3/reference/drives/create
Очевидно, что вместо прямого http-вызова я использую API-интерфейс скрипта приложения, как показано в приведенном ниже коде. Кроме того, я заметил, что API v3 использует метод create, а не insert, используемый в v2. Сценарии приложения все еще используют метод вставки. Замена вставки результатами создания приводит к сообщению об ошибке, указывающем, что основной версией API является 2:
TypeError: Не удается найти функцию create в объекте AdvancedServiceIdentifier {name = drive, version = v2}.
Метод вставки в v2 очень похож на метод создания в v3: https://developers.google.com/drive/api/v2/reference/drives/insert
У меня была похожая ошибка при попытке получить разрешения на существующих дисках, и было принято решение передать "SupportAllDrives = true"Аргумент с запросом (с использованием необязательного параметра arguments вызова API). К сожалению, метод «insert» не имеет параметра, который я мог бы использовать для передачи необязательных аргументов - представление ресурса и идентификатор запроса являются единственными параметрами метода «insert».
Мой код:
function createSharedDrive() {
var resource = {
name: "TestDriveChrisD6"
};
var drive = Drive.Teamdrives.insert(resource, "testRequestId_TestDriveChrisD6");
Logger.log(JSON.stringify(drive)); // to see the result if it works eventually
}
Я надеялся, что этот вызов API приведет к ответу, содержащему представление диска, вместо этого я получаю сообщение об ошибке:
Вызов API для drive.teamdrives.insert завершился ошибкой:Недостаточно прав для этого файла (строка 288, файл «Код»)
Номер строки в сообщении об ошибке - просто номер строки моего исходного кода, который содержит код:
var drive = Drive.Teamdrives.insert(resource, "testRequestId_TestDriveChrisD6");
Что я делаю неправильно? Стоит ли вызывать метод http прямым запросом?