Можно ли перебирать связанные сценарии и редактировать их файлы манифеста с помощью сценария? - PullRequest
0 голосов
/ 07 июня 2019

Я создаю приложение, в котором будет много пользователей, у каждого из которых будет много документов Google.У каждого документа будет свое меню, и это пользовательское меню вызовет скрипт библиотеки.Мне может понадобиться или захотеть время от времени менять кодировку в этом библиотечном скрипте.

Поскольку изменения в библиотечном скрипте должны быть «сохранены» как новая версия, чтобы измененная версия передавалась вклиентские скрипты (в моем случае, скрипты, привязанные к Google Docs), мне нужен способ, которым пользователи могут «пакетно» обновить номер версии в файле appsscript.json связанного скрипта своих документов.

Я исследовал эту проблему, и, похоже, есть две основные альтернативы: установите режим библиотеки клиентских сценариев на «Developmental» или используйте дополнение.

Проблема с первым заключается в том, что он не будет работать, если только всем пользователям не будет предоставлен доступ в режиме редактирования к сценарию библиотеки (что кажется особенно плохой идеей, поскольку пользователи могут даже не знать меня).

Проблема с последним - по существу, сложность и стоимость.Если я сделаю надстройку приватной, она будет работать только для пользователей в одном домене, что означает, что мне нужно создать домен G-Suite (и платить по крайней мере (на момент написания статьи) $ 72 в год на пользователя - не для начинающих)для этого проекта).

Если я сделаю надстройку общедоступной, в дополнение к усложнению, мне придется зарегистрироваться в облачной платформе Google, а для ее оплаты необходимо пройти через настоящий лабиринт выбораи альтернативы, такие, что на данный момент я действительно понятия не имею, какой будет цена за услугу или пользователя.

Ниже я представляю некоторый «макетный» код, который должен по крайней мере указать направление, в котором я пытаюсьgo.

function upDate() {
  var version = 23
  var scripts = "https://script.google.com/u/0/home"
          //while (scripts.hasNext()) {
            //var script = files.next();
  //Note: All of the script's have the same name as they commence life bound to a template, which template is duplicated to create the rest of the user's docs
  if( scriptName = ScriptName){
            //set.dependencies.enabledAdvancedServices[].version
}
}

Я даже не знаю, можно ли пройти пошаговые скрипты так, как один шаг проходит по файлам на Google Диске, так что это первый вопрос.Затем второй вопрос заключается в том, можете ли вы, при условии, что вы можете пошагово проходить через сценарии один за другим, изменить значение манифеста - в данном случае номер версии.

1 Ответ

0 голосов
/ 10 июня 2019

Нельзя перебирать скрипты, связанные с контейнером, так как они (больше не находятся) на своем Google Диске.Более того, несмотря на документацию Google об использовании «стабильного» значения в разделе версии манифеста, эта документация выглядит ошибочной.Наконец, нельзя программно редактировать автономные скрипты.

Однако, есть обходной путь.В итоге я написал скрипт, который просматривает все вовлеченные Документы Google и копирует их в пустой шаблон (т. Е. Фактически дублирует их все).В этом пустом шаблоне установлен связанный скрипт с новым номером версии библиотеки.Затем удалите исходные документы (с помощью того же сценария) и voilà , пакетное обновление всех целевых документов выполнено.(Один из недостатков этого заключается в следующем: если история изменений Документа Google важна для вас, имейте в виду, что этот гамбит отказывается от этого (если вы не сохраняете оригинальные версии).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...