Что это
Google Workspace CLI Assistant (gog) — это консольная утилита для управления сервисами Google Workspace прямо из терминала. Она даёт возможность работать с Gmail, Календарём, Диском, Контактами, Таблицами и Документами без веб-интерфейса. Инструмент ориентирован на разработчиков, DevOps-инженеров и всех, кто хочет автоматизировать рутинные операции с Google-аккаунтом: поиск писем, отправку сообщений, создание событий, чтение таблиц и экспорт документов.
Как работает
🔑 Настройка OAuth и авторизация
Перед первым использованием нужно пройти OAuth-аутентификацию. Для этого потребуется файл client_secret.json из Google Cloud Console. Процесс одноразовый:
- Загрузите учётные данные:
gog auth credentials /path/to/client_secret.json
- Добавьте аккаунт с нужными сервисами:
gog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
- Просмотрите список авторизованных аккаунтов:
gog auth list
После этого можно указывать аккаунт через флаг --account или задать переменную окружения GOG_ACCOUNT, чтобы не повторять его в каждой команде.
📧 Gmail: поиск, отправка, черновики, ответы
Утилита позволяет выполнять все основные операции с почтой:
- Поиск писем —
gog gmail search 'newer_than:7d' --max 10 (возвращает по одному результату на тред). Для поиска отдельных сообщений (без группировки в треды) используйте gog gmail messages search.
- Отправка — поддерживает обычный текст (
--body), многострочный текст из файла (--body-file ./message.txt) или из stdin (--body-file -), а также HTML-письма (--body-html).
- Черновики — создание (
gog gmail drafts create) и отправка (gog gmail drafts send draftId``).
- Ответы — можно ответить на конкретное письмо, указав
--reply-to-message-id msgId``.
Пример отправки письма с многострочным текстом через heredoc:
gog gmail send --to recipient@example.com \
--subject "Встреча" \
--body-file - << 'EOF'
Привет,
Спасибо за встречу.
Следующие шаги:
- Пункт один
- Пункт два
С уважением,
Имя
EOF
📅 Календарь: просмотр, создание, обновление событий, цвета
- Список событий —
gog calendar events calendarId--fromiso--toiso``.
- Создание события —
gog calendar create calendarId--summary "Заголовок" --fromiso--toiso. Можно добавить цвет через `--event-color `id.
- Обновление —
gog calendar update calendarId eventId --summary "Новый заголовок" --event-color 4.
- Просмотр доступных цветов —
gog calendar colors (выводит ID и hex-коды, например 1: #a4bdfc).
📁 Drive: поиск файлов
Поиск на Google Диске выполняется командой gog drive search "query" --max 10. Результаты можно использовать в скриптах для дальнейшей обработки.
📇 Контакты: список
Получить список контактов: gog contacts list --max 20. Полезно для интеграции с другими сервисами.
📊 Sheets: чтение, запись, добавление, очистка
Работа с Google Таблицами:
- Чтение —
gog sheets get sheetId "Tab!A1:D10" --json (вывод в JSON для скриптов).
- Запись —
gog sheets update sheetId "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED.
- Добавление строк —
gog sheets append sheetId "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS.
- Очистка диапазона —
gog sheets clear sheetId "Tab!A2:Z".
- Метаданные —
gog sheets metadata sheetId --json.
📝 Docs: экспорт, просмотр
С Google Документами можно только читать и экспортировать:
- Экспорт —
gog docs export docId --format txt --out /tmp/doc.txt.
- Просмотр содержимого —
gog docs cat docId``.
Редактирование документов на месте не поддерживается (требуется Docs API).
⚙️ Полезные советы
- Переменная окружения
GOG_ACCOUNT=you@gmail.com избавляет от повторения --account.
- Для скриптов используйте флаги
--json и --no-input, чтобы получать структурированный вывод и избежать интерактивных запросов.
- При отправке писем с многострочным текстом предпочтительнее
--body-file (файл или stdin), так как --body не обрабатывает экранирование \n.
- HTML-письма поддерживают базовые теги:
p, br, strong, em, a, ul`/`li.
- Перед отправкой почты или созданием событий утилита запрашивает подтверждение — это защита от случайных действий.
Когда использовать
- Автоматизация рутины — например, ежедневная рассылка отчётов, создание событий по расписанию, бэкап данных из Таблиц.
- Интеграция в CI/CD — можно добавить шаги, которые отправляют уведомления через Gmail или обновляют статус в Таблице.
- Управление без GUI — когда нужно быстро найти письмо, создать встречу или выгрузить документ, не открывая браузер.
- Скриптовая обработка — комбинируйте команды gog с
jq, grep и другими утилитами для построения сложных пайплайнов.
Важно знать
- Для работы требуется OAuth-авторизация — файл
client_secret.json и разрешения для каждого сервиса. Без этого ни одна команда не выполнится.
- Подтверждение действий — отправка писем и создание событий требуют интерактивного подтверждения (если не указан
--no-input). Это безопасно, но учитывайте при автоматизации.
- Ограничения Docs — gog не поддерживает редактирование содержимого документов, только экспорт и чтение. Для изменений нужен отдельный клиент Docs API.
- Форматирование писем — для многострочных сообщений используйте
--body-file или heredoc, а не --body с \n.
- Цвета событий — ID цветов можно получить командой
gog calendar colors; они соответствуют стандартной палитре Google Календаря.
Комментарии
Комментариев пока нет. Будьте первым.