Главная/Документация/Источники данных/Google: почта, календарь, диск и Search…
Источники данных

Google: почта, календарь, диск и Search Console

Подключение через OAuth. Поддерживаются семь сервисов, у каждого свой набор прав. Что подключается и с какими правами Сервис Права Что даёт gmail gmail.modify , gmail.compose читать, помечать, раскладывать по ярлыкам,…

Подключение через OAuth. Поддерживаются семь сервисов, у каждого свой набор прав.

Что подключается и с какими правами

Сервис Права Что даёт
gmail gmail.modify, gmail.compose читать, помечать, раскладывать по ярлыкам, создавать черновики и отправлять
calendar calendar полный доступ к календарю
drive drive полный доступ к Диску
docs documents полный доступ к Документам
sheets spreadsheets полный доступ к Таблицам
youtube youtube.readonly, youtube.force-ssl чтение канала и управление контентом
searchconsole webmasters.readonly чтение данных Search Console

Ко всем добавляется userinfo.email — по нему подпись, чей аккаунт подключён.

Порядок настройки

1. Проект в Google Cloud Console

  1. Открыть console.cloud.google.com, создать проект или взять существующий.
  2. Включить нужные API — «APIs & Services» → «Enable APIs and Services»: Gmail API, Google Calendar API, Google Drive API, Google Docs API, Google Sheets API, YouTube Data API v3, Search Console API — каждый отдельно, только те, что нужны.
  3. «APIs & Services» → «Credentials» → «Create credentials» → OAuth client ID → тип Web application.

2. Redirect URI — здесь ломается чаще всего

В созданном клиенте, в разделе Authorized redirect URIs, добавить адрес, куда Google вернёт пользователя после согласия. Он зависит от того, как вы работаете:

Как работаете Что добавлять
Веб-интерфейс (обычный случай) https://<адрес вашего сервера>/api/oauth/callback
Настольное приложение http://localhost:<порт>/callback

⚠️ Адрес должен совпадать посимвольно — протокол, домен, путь. Расхождение даёт redirect_uri_mismatch, и никакие повторные попытки не помогают.

⚠️ Не переиспользуйте OAuth-клиент, созданный под другой сервис. Клиент, заведённый когда-то под сторонний инструмент, содержит только его callback — ваш он отклонит. Проще завести новый клиент, чем разбираться в чужом.

3. Экран согласия и тестовые пользователи

«OAuth consent screen»:

  • Тип External, если аккаунт обычный (не Workspace).
  • Пока приложение не прошло проверку Google, оно в статусе Testing, и войти могут только аккаунты из списка Test users. Добавьте туда почту, которой будете подключаться, иначе на экране согласия будет отказ.
  • Проверка Google нужна только для публичных приложений. Для внутреннего использования достаточно режима Testing.

4. Подключение источника

  1. Создать источник нужного сервиса, указать clientId и clientSecret из шага 1.
  2. Запустить авторизацию (source_google_oauth_trigger) — откроется экран согласия Google.
  3. Подтвердить доступ тем аккаунтом, который добавлен в Test users.

Запрос уходит с access_type=offline и prompt=consent — это нужно, чтобы Google выдал refresh token. Без него доступ протухнет через час и не восстановится сам.

Частые ошибки

Симптом Причина Что делать
redirect_uri_mismatch адрес в клиенте не совпадает с фактическим сверить посимвольно, добавить нужный в Authorized redirect URIs
Экран согласия отказывает аккаунта нет в Test users добавить почту в Test users
403 SERVICE_DISABLED нужный API не включён в проекте включить конкретный API в «Enable APIs and Services»
Работает Search Console, но не Gmail токен выдан под другой набор прав пройти авторизацию заново для нужного сервиса — права не докидываются задним числом
Доступ отваливается через час не выдан refresh token пройти согласие заново; убедиться, что это не «повторный вход» без запроса согласия
Всё настроено, но письма не читаются подключён не тот аккаунт проверить, чья почта в userinfo.email

Почта без OAuth

Если нужен только доступ к личной почте и возиться с Google Cloud не хочется — подключайте по IMAP/SMTP с паролем приложения: 16 символов, создаётся в настройках безопасности Google Account. Требует включённой двухфакторной аутентификации. Обычный пароль от аккаунта для IMAP не подойдёт.

Вариант проще, но и возможностей меньше: ярлыки, черновики и отправка от имени работают не так гибко, как через Gmail API.

Проверка после настройки

  1. Запросить у источника список последних писем / ближайших событий / файлов — должно вернуться без ошибок авторизации.
  2. Убедиться, что подключён нужный аккаунт.
  3. Через час повторить запрос — если доступ жив, refresh token на месте.

Нужен такой агент в вашей компании?

Устанавливаем под ключ: настройка на компьютерах сотрудников, единый аккаунт, интеграция с 1С и внутренними системами, обучение команды. Подробнее о внедрении →