Идентификация пользователей

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

Возможности

  • Обращение к API и службам Google от имени пользователя.
  • Реализация собственной модели управления доступом для предоставления пользователям релевантных данных.
  • Персонализация настроек для действующего пользователя.

Реализация

Получение токена OAuth пользователя

Коннектор может обращаться к API и службам Google от имени действующего пользователя путем передачи токена OAuth. Получить этот токен можно с помощью метода ScriptApp.getOAuthToken(). Подробнее… Токен включает области действия, которые были указаны при авторизации коннектора.

В большинстве случаев Apps Script автоматически определяет необходимые области действия путем анализа и обработки скрипта. Вы можете посмотреть их в любой момент. Вы также можете явно задать области действия в манифесте с помощью строк URL. Чтобы обратиться к API или службе Google от имени пользователя, добавьте соответствующую область действия в манифест.

Получение адреса электронной почты пользователя

Вы можете идентифицировать текущего действующего пользователя с помощью метода Session.getEffectiveUser().getEmail(). Подробнее… При этом в коннектор будет автоматически добавлена область действия https://www.googleapis.com/auth/userinfo.email.

Пример: вызов API Google с помощью токена OAuth пользователя

  • Коннектор Google Fit получает данные для действующего пользователя из Google Fit API. При вызове API коннектор передает токен OAuth этого пользователя. См. исходный код.
  • Коннектор Firestore получает список проектов для действующего пользователя с помощью Cloud Resource Manager. Этот коннектор также передает токен OAuth пользователя. См. исходный код.

Пример: использование метода isAdminUser() на основе электронного адреса