Я написал скрипт приложения, который предоставляет веб-интерфейс для ввода данных в календарь команды.Я опубликовал его, используя учетную запись супер-администратора G-Suite, и добавил его в качестве доверенного приложения в разделе «Разрешения безопасности / API».«Доверительные доменные приложения» отмечены в «Внутренних настройках приложения».
Когда пользователь G-Suite в нашей организации пытается получить доступ к приложению, он видит
«РазработчикShiftSchedulingApp, admin@_our_organization_.org, требуется ваше разрешение для доступа к вашим данным в Google. "
Те, кто достаточно смел, чтобы нажать" Разрешения на просмотр ", переходят к следующему сообщению:
«ShiftSchedulingApp хочет получить доступ к вашей учетной записи Google. Смотрите, редактируйте, делитесь и навсегда удаляйте все календари, к которым вы можете получить доступ с помощью Календаря Google» *
Конечно, никто не хочет рисковать потерей всехкалендари в их учетной записи Google, и на этом все заканчивается.
Как мне избавиться от этого вводящего в заблуждение сообщения?Это не учетная запись Google, это учетная запись организации в G-Suite.Это не все их календари, это общий календарь команды.Это добавление данных, а не удаление календарей навсегда.Он опубликован их администратором в G-Suite, а не неизвестной третьей стороной.
Я потратил несколько дней, пытаясь убрать это сообщение, но не повезло.Приложение должно выполняться как пользователь, выполняющий доступ, а не как пользователь публикации, потому что его идентификатор пользователя определяет, какие сдвиги они могут выполнять в календаре.
Буду признателен за любые подсказки, указывающие мне правильное направление.
Я экспериментировал с вариантами подхода с двумя приложениями, как было предложено.
Приложение, которое предоставляет пользовательский интерфейс, должно читать календарь для отображения доступных смен - поэтому я не могу уйти от авторизации пользователянезамедлительный.
Еще один вариант, который я попробовал, состоял в том, чтобы одно приложение делало все и работало как я, а другое - ничего, кроме возврата Session.getActiveUser ().Я попытался вызвать 2-й из 1-го на стороне клиента через XMLHttpRequest.Это было бы идеально для моих нужд - но я сталкиваюсь с ошибкой CORS, поскольку URL-адрес приложения - script.google.com, но на самом деле он перенаправляется на script.googleusercontent.com.Кажется, нет способа установить CORS в Google App Script.