用途:当内置 Google 连接器缺少所需功能、Shell 自动化需要稳定的 JSON 输出,或需要在操作前检查本地 Google 授权状态时,可使用 gog 命令行工具。它通过 OAuth 访问 Gmail、日历、Drive、Docs、Sheets、通讯录等服务,支持读取和受控写入。
主要能力:提供机器可读的 JSON 输出、稳定的退出码、非交互行为和命令守卫。GOG_HELP=agent gog --help 输出面向自动化的紧凑说明;gog schema --json 暴露命令语法、退出码与生效的安全状态。读取时可使用 --readonly、--account 指定账号、--json、--wrap-untrusted、--sanitize-content;写入前建议用 --dry-run,破坏性命令需 --force,未获用户明确授权不应添加。可用 --enable-commands、--disable-commands 限定运行时可执行命令,用 --gmail-no-send 或 GOG_GMAIL_NO_SEND=1 禁止发信。gog auth list --check --json --no-input 与 gog auth doctor --check --json --no-input 用于检查账号与诊断环境。
使用方式:先确认版本与环境,再以 --no-input 让认证和密钥环提示明确失败。OAuth 设置部分交互,通常需人工在浏览器完成同意;可用 tmux 分离会话运行 CLI,用 capture-pane -J 抓取同意 URL,再交浏览器处理。回调指向 http://localhost:<port>,CLI 与浏览器分离时需转发该端口。服务账号仅适用于 Workspace 的 Admin、Groups、Keep 等域级委派场景,不能解决消费者 @gmail.com 的 OAuth。
限制:不得打印访问令牌、刷新令牌、OAuth 客户端密钥或密钥环密码。自动化中应验证实际启动 gog 的进程环境是否具备 GOG_KEYRING_BACKEND=file、GOG_KEYRING_PASSWORD 和 HOME。docs update 的 --replace-range 使用 Google Docs UTF-16 API 范围,与 --index 互斥,需从读取结果解析而非猜测。gmail batch delete 永久删除且需更宽 OAuth 范围,优先使用 gmail trash。更大 Sheets 写入优先用 batch-update。其余未在资料中说明的功能、价格或平台信息暂未提供。