Невозможно создать триггер Installble в электронной таблице - PullRequest
2 голосов
/ 11 марта 2020

Я создал WebApp , который принимает идентификатор электронной таблицы, идентификатор списка Trello, ключ API Trello и токен пользователя Trello в качестве входных данных.

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

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

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

Я опубликовал этот скрипт как веб-приложение с разрешением на выполнение приложения как Me и анонимный доступ к приложению.

Permission settings for the script

Я использовал Postman для выполнения API-вызовов к сценарию и при отправке ввода, необходимого для создания триггера. Я получаю HTML, который говорит это:

enter image description here

Я также пытался изменить разрешения на выполнение:

enter image description here

Но затем получил этот ответ:

enter image description here

Я предполагаю, что я буду Мне нужно получить разрешение от пользователя, чтобы установить триггер на его / ее ресурсе, но я не уверен, как добиться того, чтобы любые предложения были оценены.

Просто для полноты, вот код для настройки триггера в электронной таблице.

function getTrigger(data){

    return ScriptApp.newTrigger("createTrelloCard").forSpreadsheet(data["spreadsheet_key"])
        .onFormSubmit()
        .create();
}
...