Проблема с областями при переключении проектов Google Apps Script на среду выполнения V8

Из-за того, что скрипт Google Apps принудительно переводит Rhino на движок V8, приложения автоматически перемещаются с Rhino на V8. Поэтому наши приложения запрашивают области, которые необходимо указать вручную в файле appscript.json.

Пожалуйста, проверьте изображение ниже:

Проблема с приложением

Файл :-

Code.gs

Когда я обновляю, как показано ниже, все работает нормально.

appsscript.json

Нас беспокоит то, что у нас в производстве более 100 приложений, и мы не можем каждый раз обновлять их вручную. Не могли бы вы помочь нам, как обновить без каких-либо проблем в производстве?


person Ramachandra-Sah GANESH    schedule 03.03.2020    source источник
comment
Посмотрите google-apps-script-api.   -  person TheMaster    schedule 03.03.2020
comment
Я специально имел в виду информационную страницу этого тега, которая будет содержать документацию в отношении программных манипуляций со сценариями приложений.   -  person TheMaster    schedule 03.03.2020
comment
Вам нужно будет выполнить поиск файлов, чтобы найти все файлы сценариев приложений, получить идентификаторы файлов, а затем использовать REST API, чтобы получить файл appsscript.json, изменить настройку и затем обновить файл. Сначала Получить контент, а затем Обновление содержания Итак, это процесс, состоящий из нескольких шагов.   -  person Alan Wells    schedule 03.03.2020
comment
Привет Алан, Спасибо за шаги. Но я думаю, нам нужно опубликовать снова по одному отдельно. Не так ли?   -  person Ramachandra-Sah GANESH    schedule 04.03.2020
comment
При переходе на V8 не должно быть проблем с используемыми областями. Не могли бы вы поделиться примером того, как выглядит ваш код в строке 105?   -  person Mateo Randwolf    schedule 04.03.2020
comment
Я обновил в посте. Пожалуйста, проверьте   -  person Ramachandra-Sah GANESH    schedule 05.03.2020
comment
Разве у вас не было этой области https://www.googleapis.com/auth/userinfo.email до перехода на v8?   -  person Mateo Randwolf    schedule 10.03.2020


Ответы (1)


Использование застежки

Вы можете обновлять файлы манифеста в пакетном режиме с помощью CLASP. проект (под капотом он использует Apps Script API) и служебный скрипт на Node.js или выбранный вами яд для управления рабочим процессом. Общие шаги, которые необходимо предпринять:

  1. Клонируйте проект с помощью clasp clone "YourScriptIdHere".

  1. Обновите файл appsscript.json, указав необходимые области. Поскольку манифест сохраняется в корне проекта, я бы сделал что-то вроде этого (с Node.js):
const { writeFile } = require("fs").promises;

const addScope = async (scopes) => {

  const pathToManifest = "appscript.json";

  const manifest = require(pathToManifest);

  const { oauthScopes = [] } = manifest;

  oauthScopes || ( manifest.oauthScopes = oauthScopes ); //guard against first scope

  oauthScopes.push(...scopes);

  await writeFile(pathToManifest, JSON.stringify(manifest));
}


  1. Отправьте обновления в проект с помощью clasp push. Поскольку вы меняете манифест, используйте опцию --force, иначе вам придется одобрять каждую загрузку. Обратите внимание, что по состоянию на 2020 год проект еще не поддерживает частичные обновления, поэтому будут заменены все файлы. Используйте файл .claspignore, чтобы случайно не нажать всю папку node_modules или что-то подобное.

  1. Повторно разверните проекты с помощью clasp deploy. Команда настраивается, поэтому не беспокойтесь о нескольких развертываниях.
person Oleg Valter    schedule 12.07.2020