Я бы продолжил, создав два сценария: базовая функциональность будет развернута как веб-приложение, а простой скрипт, связанный с контейнером, предложит интерфейс для вызова веб-приложения.
Поскольку Web App не связан с документом вы можете следовать этой схеме:
function doGet(e){
if(e.parameter.docId){
doStuff(DocumentApp.openById(e.parameter.docId));
}
}
Теперь при развертывании приложения вы получите ссылку, которая дает вам доступ к функциональным возможностям.
Из контейнера переплете скрипт вы можете добавить некоторый пользовательский интерфейс (например, элемент Anchor в боковой панели), ссылки на веб-приложение с соответствующими параметрами
ScriptApp.getService().getUrl() + "?docId=" + DocumentApp.getActiveDocument().getId()
или использовать UrlFetchApp, чтобы получить результаты и отображать их в пользовательском интерфейсе.
К сожалению, это не то же самое, что добавлять функции во все ваши документы автоматически, а скорее способ установить только относительно легкий крючок в каждом документе, где вы хотите добавить функциональность, а не полный скрипт. Мне неизвестен какой-либо метод, который может это достичь. Обратите внимание, что когда вы делаете копию документа, копия будет содержать все ее скрипты, чтобы вы могли создать шаблон для документов, которые нуждаются в дополнительных функциях. Это может быть полезно, если вы хотите смешивать и сопоставлять несколько сценариев.
Преимущество моего метода в том, что если вы измените базовую функциональность, это изменение сразу же будет доступно для всех ваших документов, использующих его, без необходимости обновлять их скрипты. С другой стороны, если контейнер-скрипт должен сильно взаимодействовать с пользовательским интерфейсом, он может усложняться и уменьшить полезность его разделения в двух сценариях.
Конечно! Я хочу создать приложение, которое извлекает одно слово (или больше), а затем отправляет слово (ы) на сервер через XHR (UrlFetchApp), где он проверяется на орфографические ошибки/предсказание слов, а затем возвращается как объект JSON - эта часть уже позаботилась. Вещь, которую я хочу сделать, заключается в том, чтобы заставить скрипт привязываться к какому-либо документу, который просматривает пользователь, и иметь такую же функциональность в Google Документах. Любые идеи? – user2663983