Ошибка при использовании SpreadsheetApp и FormApp в одном и том же автономном скрипте - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь запустить простой скрипт, который открывает электронную таблицу Google и форму Google в одном и том же автономном файле скрипта приложения. Похоже, что скрипт может дать авторизацию только FormApp, но не SpreadsheetApp. Область авторизации не предоставляет разрешения на манипулирование электронной таблицей.

Ошибка выглядит следующим образом:

У вас нет разрешения на вызов openById

Если я запускаю обе строки отдельно (удаляя ту или иную строку), тогда скрипт работает нормально.

Следуйте примеру code.gs:

function Code(){
    var spreadsheet = SpreadsheetApp.openById("<spreadsheet_id>")
    var form = FormApp.openById("<form_id>")
}

Следуйте указанным областям действия сценария:

https://www.googleapis.com/auth/forms

Обратите внимание, что скрипт приложения не запрашивает область действия электронной таблицы.

Странная часть: если я создаю ограниченный скрипт в электронной таблице или форме, тогда скрипт работает нормально. Проблема возникает только в автономном скрипте.

Я не использую аннотацию @ OnlyCurrentDoc

1 Ответ

0 голосов
/ 16 сентября 2018

Если вы определяете какие-либо области вручную , вы отключаете автоматическое определение области. Либо определите их все, либо удалите раздел oauthScopes из файла манифеста.

Вы можете просмотреть доступные области OAuth2 и информацию о том, что они предоставляют, на веб-сайте Google Identity Platform .

А именно, вам нужно добавить область, разрешающую доступ к Google Sheets, например https://www.googleapis.com/auth/spreadsheets, в дополнение к другим областям, которые требуются вашему сценарию (например, доступ к формам и т. Д.).

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