Поделитесь сценарием Google App с другими пользователями - запрашивается разрешение и авторизуется сценарий

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

введите описание изображения здесь

Я уже пытался:

  1. Поделиться таблицей с пользователем (с). Добавление адреса электронной почты пользователя с разрешения Можно редактировать)
  2. Разверните настройки веб-приложения со следующими параметрами:

введите описание изображения здесь

Как видите, на экране настроек отображается сообщение "Вам необходимо авторизовать скрипт перед распространением URL".

Как я могу авторизовать скрипт? Я не могу найти способ сделать это. Знаете ли вы, есть ли другой способ поделиться и позволить другим пользователям запускать скрипт?

3 ответа

Решение

Проблема в том, что вы смешиваете веб-приложение с диалоговым окном на листе.
Доступ к веб-приложению осуществляется из URL-адреса веб-приложения (предоставляется при публикации веб-приложения).
Диалог пользовательского интерфейса - это окно, отображаемое в верхней части таблицы.
Вы хотите использовать веб-приложение, следуйте инструкциям для этого. Опубликуйте его для принятия из домена, если все пользователи находятся в одном домене gapps. Остальное используют публичные анонимы.
Запустите doGet перед публикацией для авторизации. Также возможно сделать другой пользовательский интерфейс на листе, но вам нужно больше шагов для каждого пользователя для авторизации.

Поскольку вы выбрали запускать приложение от своего имени, вам необходимо сначала авторизовать этот скрипт.

Просто выберите метод doGet и нажмите run в редакторе, вы получите возможность авторизации.

Вам нужно вручную проверить, что ваш скрипт имеет доступ к документу.

Добавьте функцию к вашему сценарию, которая обращается к документу:

function doInstall() {
   var mysheet = SpreadsheetApp.openById('x4535khxxhidh...');
}

В скрипте-редакторе выберите: Run->doInstall (Или как вы называете свою функцию), когда вас попросят подтвердить, что скрипт имеет право доступа к документу.

У меня сработало следующее:

  1. Перейти в "Опубликовать"
  2. Нажмите "Развернуть как веб-приложение".
  3. Нажмите "Отключить веб-приложение" (если вы его уже опубликовали)
  4. Запустите скрипт, нажав "Выполнить"
  5. Авторизуйте скрипт и предоставьте разрешения для своей учетной записи
  6. Снова перейдите в "Опубликовать" и нажмите "Развернуть как веб-приложение".
  7. Добавьте еще одну "версию проекта" (если вы ее уже опубликовали)
  8. При необходимости измените "Кто имеет доступ к приложению:" на "Кто угодно, даже анонимно".