Фон:
Речь идет об использовании Gmail Addon, созданного с помощью Google App Script. Когда пользователь устанавливает надстройку, появляется экран согласия OAuth, где пользователь дает свое согласие на то, чтобы «Имя продукта, показываемое пользователям» (как настроено на экране OAuth), разрешило указанный доступ.
Теперь я прочитал: https://developers.google.com/identity/protocols/CrossClientAuth а>
в котором говорится:
Когда пользователь предоставляет доступ к вашему приложению для определенной области, он смотрит на экран согласия пользователя, который включает в себя брендинг продукта на уровне проекта, который вы настроили в консоли Google API. (Для получения информации о настройке экрана согласия см. Раздел Настройка OAuth 2.0 в справке консоли API.) Таким образом, Google считает, что, когда пользователь предоставил доступ к определенной области любому идентификатору клиента в проекте, грант указывает на пользователя доверять всему приложению для этой области.
Теперь у меня есть серверный веб-компонент (лямбда) (принадлежащий тому же продукту), которому требуется доступ к электронной почте пользователя, такой же доступ, который пользователь предоставил после установки надстройки (кнопка «Авторизованный доступ»).
Вопрос (ы):
Есть ли способ иметь кросс-клиент (бэкэнд-сервер и надстройку Gmail) в моем случае, чтобы бэкэнд просто получал доступ к данным пользователя, не вызывая дополнительных (в основном, на что пользователь дал согласие)?
Примечание. Используя дополнительный экран авторизации, запускаемый вручную с помощью библиотеки GAS OAuth, я смог получить «Код аутентификации», который я передаю на сервер, с помощью которого сервер теперь имеет доступ к согласованным данным (мы использовали тот же идентификатор клиента и секрет). Однако проблема с этим подходом заключается в следующем:
- Пользователь получает 2 письма о предоставленных разрешениях. Аддон и поток, запускаемый вручную.
- Пользователь должен авторизовать надстройки Gmail для первого доступа, а затем другого, который я запускаю вручную. Даже если бы я мог получить «Код авторизации», когда пользователь установит аддон, это тоже подойдет.
Заранее извиняюсь, есть много разрозненной документации, и хотя я просмотрел много, вероятно, я что-то пропустил.