Добавление электронных таблиц Google onInstall / onOpen с AuthMode.NONE: Как распознать предоставленные пользователем разрешения? - PullRequest
1 голос
/ 01 апреля 2020

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

Вот мой код:

function onOpen(e) {
  if (e && e.authMode == ScriptApp.AuthMode.NONE) {
    var menu = SpreadsheetApp.getUi().createAddonMenu();
    menu.addItem('Grant permissions', 'createMenu');
    menu.addToUi();
  } else {
    createMenu();
  }
}

function createMenu() {
  var up = PropertiesService.getUserProperties();
  // now follows code to fill the menu according to user properties
}

Когда оно попадает в PropertiesService.getUserProperties(), Google аутентификация запущена. Но, наконец, он не запускается снова через метод onOpen, чтобы воссоздать меню с реальными записями (за исключением того, что я закрываю и снова открываю электронную таблицу)
Тем временем мой AddOn был опубликован. При установке AddOn функция onInstall (e) вызывается NOT - в меню AddOn содержится только сгенерированная автоматически запись справки c. Также логирование, которое я добавил в функцию onInstall (e), не записывается в логирование gcp.

1 Ответ

1 голос
/ 18 апреля 2020

Функция onInstall (e) не вызывается - это проблема Google, см .: https://issuetracker.google.com/issues/147016387
Исправление выпущено, но еще не выпущено.

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