Могу ли я развернуть связанные скрипты с помощью Google Script API

Недавно Google представил свой новый Google Script API, и я думаю, что это хорошая возможность реализовать долгожданный проект.

Контекст следующий:

  • Несколько пользователей, все в корпоративном домене GSuite, совместно используют около 100 листов, преследующих одну и ту же цель.

  • Я хотел бы дополнить эти листы боковой панелью, которая отображает дополнительную информацию и т. д.

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

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

Однако новейший API дает мне надежду. Я просмотрел документацию, но на самом деле она так или иначе не говорит, поэтому мой вопрос:

Можно ли развернуть связанные скрипты с помощью Google Script API?


person Maxime    schedule 06.02.2018    source источник
comment
Вы хотите создать проект связанного скриптового типа в электронной таблице? Если я правильно понимаю, этого можно достичь с помощью проектов. .create API сценариев приложений. Но я не уверен, работает ли это и полезно ли это в вашей среде. Требуется попробовать. Если я неправильно понял ваш вопрос, извините.   -  person Tanaike    schedule 06.02.2018
comment
Здравствуйте @Tanaike, спасибо за вашу помощь. Projects.create — это, безусловно, половина решения. Другая половина будет извлекать проект, созданный позже, из идентификатора листа Google, но кажется, что Projects.get может использовать только идентификатор проекта... Есть идеи?   -  person Maxime    schedule 06.02.2018
comment
Спасибо за ваш ответ. К сожалению, в текущей ситуации проект в электронной таблице не может быть получен с помощью Apps Script API. Поскольку project.get не возвращает родительский идентификатор (в вашем случае идентификатор электронной таблицы). Хотя я думаю, что это может быть ошибка, я не уверен в деталях. Поэтому я сообщил об этой ситуации на issuetracker.google.com/issues/71941200.   -  person Tanaike    schedule 07.02.2018


Ответы (2)


Это должно быть возможно (по большей части).

Вы можете столкнуться с несколькими проблемами с автоматическим открытием боковой панели, но все остальное кажется жизнеспособным.

Вам просто нужно написать скрипт для получения идентификаторов файлов более чем 100 рассматриваемых листов, настроить автономный или связанный скрипт в качестве основной копии и использовать projects::getContent(), чтобы получить файлы сценария от мастера и распространить их на целевые листы с помощью < метод href="https://developers.google.com/apps-script/api/reference/rest/v1/projects/updateContent" rel="nofollow noreferrer">projects::updateContent(). Возможно, вам также потребуется создать новые проекты для связанных скриптов на этих листах, используя ссылку projects::create().

person TheAddonDepot    schedule 07.02.2018
comment
Спасибо за помощь. У меня вопрос, связанный с комментариями вопроса. Как бы вы получили идентификатор проекта связанного проекта (поскольку для проектов::updateContent() требуется идентификатор проекта) из связанных листов? - person Maxime; 07.02.2018
comment
Для метода требуется идентификатор scriptId, который также возвращается в ответе JSON при создании проекта. - person TheAddonDepot; 07.02.2018

В документации указано, что вы можете публиковать свои скрипты (связанные или отдельные) как дополнения< /а>. Это наиболее вероятное направление, в котором вы движетесь.

Apps Script позволяет вам опубликовать свой скрипт как надстройку, так и другие пользователи могут установить его из магазина дополнений.

person noogui    schedule 06.02.2018
comment
Спасибо за ваш ответ. Однако я бы предпочел решение, в котором пользователям нечего делать, оно просто работает, когда они открывают лист, являющийся частью программы. - person Maxime; 06.02.2018