Открыть документацию

Создание Google OAuth app для OpenConnector

Используйте Google OAuth app, когда самостоятельно размещённому runtime OOMOL OpenConnector нужно подключить аккаунт Google пользователя. Один проект Google Cloud может содержать OAuth client, используемый для Gmail, Google Drive, Google Calendar, Google Sheets, Google Docs, Google Slides, YouTube, Google Analytics, Google BigQuery и других провайдеров Google API.

Сервисы OpenConnector

Распространённые ID сервисов Google OAuth:

ID сервисаПровайдер
gmailGmail
googledriveGoogle Drive
googlecalendarGoogle Calendar
googlesheetsGoogle Sheets
googledocsGoogle Docs
googleslidesGoogle Slides
youtubeYouTube
google_analyticsGoogle Analytics
google_bigqueryGoogle BigQuery

Каждый сервис хранит собственную конфигурацию OAuth client в OpenConnector. Один Google OAuth client ID и client secret можно использовать для нескольких сервисов Google, если клиент допускает тот же redirect URI, необходимые API и scopes.

Предварительные требования

  • Запущенный runtime OpenConnector.
  • Аккаунт Google с доступом к проекту Google Cloud.
  • Разрешение на настройку OAuth consent, включение API и создание OAuth credentials в Google Cloud.
  • Origin OpenConnector, который пользователи открывают в браузере, например http://localhost:3000 или https://connect.example.com.

Шаг 1. Настройте callback URL OpenConnector

Для локального тестирования используйте:

http://localhost:3000/oauth/callback

Для публичного runtime сначала задайте OOMOL_CONNECT_ORIGIN, затем используйте:

https://connect.example.com/oauth/callback

Шаг 2. Подготовьте проект Google Cloud

В Google Cloud Console:

  1. Создайте или выберите проект.
  2. Откройте APIs & Services.
  3. Включите API, необходимые сервису OpenConnector, например Gmail API, Google Drive API, Google Calendar API, Google Sheets API, YouTube Data API, Google Analytics Data API или BigQuery API.
  4. Откройте OAuth consent screen и настройте название app, адрес поддержки, аудиторию, контактные данные и тестовых пользователей, когда Google их запрашивает.
  5. Добавьте scopes, необходимые сервису OpenConnector, или позвольте Google показать их при consent после запуска OAuth request.

Для широкого production-использования чувствительных или ограниченных scopes Google может потребовать verification. Для локального или внутреннего тестирования оставьте app в состоянии testing или internal, разрешённом для вашего типа аккаунта Google.

Шаг 3. Создайте OAuth credentials

В разделе APIs & Services > Credentials:

  1. Выберите Create credentials.
  2. Выберите OAuth client ID.
  3. Выберите Web application.
  4. Добавьте точный callback URL OpenConnector в authorized redirect URIs.
  5. Создайте клиент.
  6. Скопируйте client ID и client secret.

Официальное руководство Google OAuth: Using OAuth 2.0 for Web Server Applications.

Шаг 4. Сохраните клиент в OpenConnector

Используйте web console OpenConnector для подключаемого сервиса:

  1. Откройте web console OpenConnector, например http://localhost:3000.
  2. Откройте Providers и выберите Gmail или другого провайдера Google.
  3. Выберите Configure OAuth Client или Edit OAuth Client.
  4. Вставьте client ID и client secret Google.
  5. Выберите Save OAuth Client.

Повторите эти шаги на странице каждого провайдера Google, если хотите использовать один Google OAuth client для нескольких провайдеров.

Шаг 5. Подключите и проверьте

После сохранения OAuth client выберите Connect на странице провайдера Google. Завершите consent Google, вернитесь в OpenConnector и убедитесь, что аккаунт отображается как подключённый.

Для Gmail к безопасным тестовым actions относятся gmail.get_profile и gmail.list_labels. Перед выполнением action проверьте точный input в сведениях об action в console.

Устранение неполадок

СимптомЧто проверить
redirect_uri_mismatchURI, отправленный Google, должен точно совпадать с одним authorized redirect URI в OAuth client. Убедитесь, что это <openconnector-origin>/oauth/callback.
Google показывает app как unverifiedПродолжайте тестирование с разрешёнными тестовыми пользователями, используйте internal mode, если он доступен, или завершите verification Google перед широким использованием.
Google не выдаёт refresh tokenПодключите аккаунт повторно. Провайдеры Google в OpenConnector запрашивают offline access и consent, когда для определения провайдера нужны refresh tokens.
Google action сообщает о недостаточных разрешенияхВключите нужный API в Google Cloud, добавьте или подтвердите необходимый scope, затем подключите аккаунт повторно.
Используется неверный аккаунт GoogleПодключитесь повторно из профиля браузера, где выполнен вход в нужный аккаунт Google.

Храните client secrets Google в менеджере секретов и задайте OOMOL_CONNECT_ENCRYPTION_KEY перед сохранением OAuth clients в OpenConnector.