6.2 KiB
6.2 KiB
title, source, author, published, created, description, tags
| title | source | author | published | created | description | tags | |||
|---|---|---|---|---|---|---|---|---|---|
| 输出:/opt/homebrew/bin/gog | shenwei |
|
#gog #gog-cli #macos
本文档记录在 macOS 系统上安装和配置 gog CLI 的完整步骤,以便通过命令行管理 Google Workspace(Gmail、Google Calendar、Google Drive、Google Contacts、Google Docs、Google Sheets)。
目录
前置条件
- macOS 系统
- Homebrew 已安装
- Google 账号
安装步骤
1. 安装 gog CLI
使用 Homebrew 安装 gog CLI:
brew install steipete/tap/gogcli
验证安装:
which gog
# 输出: /opt/homebrew/bin/gog
配置 OAuth 凭证
1. 在 Google Cloud Console 创建 OAuth 凭证
- 打开 Google Cloud Console - Credentials
- 点击 「创建凭证」 → 选择 「OAuth 客户端 ID」
- 应用类型选择 「桌面应用」
- 命名(例如:
gogcli) - 点击 「创建」
- 点击 「下载 JSON」,得到
credentials.json文件
2. 移动凭证文件到 gogcli 配置目录
- 创建 gogcli 配置目录(如果不存在):
mkdir -p "/Users/weishen/Library/Application Support/gogcli"
- 移动下载的凭证文件:
mv ~/Downloads/credentials.json "/Users/weishen/Library/Application Support/gogcli/credentials.json"
- 使用命令指定凭证路径:
gog auth credentials /Users/weishen/Library/Application\ Support/gogcli/credentials.json
解除 Google 安全限制
问题描述
首次授权时,Google 会显示以下错误:
此应用未经 Google 验证
此应用请求访问您 Google 账号中的敏感信息。在开发者让该应用通过 Google 验证之前,请勿使用该应用。
解决方法:添加测试用户
- 打开 Google Cloud Console - Credentials
- 找到你创建的 OAuth 客户端ID的项目,点击进入详情
- 找到 「目标对象」
- 找到 「测试用户」 部分
- 点击 「添加用户」
- 输入你的 Google 邮箱:
ishenwei@gmail.com - 保存
添加测试用户后,重新运行授权命令即可:
gog auth add ishenwei@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
这会打开浏览器让你登录 Google 账号并授权。
启用Google API 服务(以 Gmail API 为例)
1. 核心原理
Google API 调用需要满足两层条件:
| 层级 | 控制内容 |
|---|---|
| OAuth | 用户身份 |
| API Enablement | 是否允许调用 API |
| 👉 即使 OAuth 成功,如果 API 未启用: |
也会报错: 403 accessNotConfigured
2. 典型错误示例
Gmail API has not been used in project XXX
👉 表示:
该 Project 未启用 Gmail API
3. 操作步骤
Step 1:进入 API 页面
Google Cloud Console
→ APIs & Services
→ Library
Step 2:搜索 API
例如: Gmail API
Step 3:启用
Enable
Step 4:等待生效
30 秒 ~ 2 分钟(有延迟)
Step 5:重新授权(关键)
gog auth revoke
gog auth login
👉 原因: 旧 token 不包含新权限
验证配置
1. 查看已授权的账号
gog auth list
- 正确结果
weishen@WeideMac-mini ~ % gog auth list
ishenwei@gmail.com default calendar,contacts,docs,drive,gmail,sheets 2026-03-24T01:29:14Z oauth
2. 测试 Gmail
gog gmail search "newer_than:1d" --max 5
- 正确结果:
weishen@WeideMac-mini ~ % gog auth list
ishenwei@gmail.com default calendar,contacts,docs,drive,gmail,sheets 2026-03-24T01:29:14Z oauth
3. 测试 Calendar
gog calendar events primary --from 2026-01-01 --to 2026-12-31
常用命令
Gmail
| 功能 | 命令 |
|---|---|
| 搜索邮件 | gog gmail search 'newer_than:7d' --max 10 |
| 发送邮件 | gog gmail send --to a@b.com --subject "Hi" --body "Hello" |
| 发送邮件(多行) | gog gmail send --to a@b.com --subject "Hi" --body-file ./message.txt |
| 创建草稿 | gog gmail drafts create --to a@b.com --subject "Hi" --body-file ./message.txt |
| 发送草稿 | gog gmail drafts send <draftId> |
Calendar
| 功能 | 命令 |
|---|---|
| 查看事件 | gog calendar events <calendarId> --from <iso> --to <iso> |
| 创建事件 | gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso> |
| 查看颜色 | gog calendar colors |
Drive
| 功能 | 命令 |
|---|---|
| 搜索文件 | gog drive search "query" --max 10 |
Contacts
| 功能 | 命令 |
|---|---|
| 列出联系人 | gog contacts list --max 20 |
Sheets
| 功能 | 命令 |
|---|---|
| 获取数据 | gog sheets get <sheetId> "Tab!A1:D10" --json |
| 更新数据 | gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED |
Docs
| 功能 | 命令 |
|---|---|
| 导出文档 | gog docs export <docId> --format txt --out /tmp/doc.txt |
| 查看内容 | gog docs cat <docId> |
故障排除
凭证文件路径错误
确保凭证文件在以下位置:
/Users/weishen/Library/Application Support/gogcli/credentials.json
需要重新授权
删除现有授权并重新授权:
gog auth remove ishenwei@gmail.com
gog auth add ishenwei@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
设置默认账号
避免每次重复指定账号:
cd ~
nano .zshrc
在.zshrc中添加以下设定
export GOG_ACCOUNT=ishenwei@gmail.com
保存生效
source ~/.zshrc
参考链接
- gog 官网: https://gogcli.sh
- gog GitHub: https://github.com/steipete/gogcli
- Google Cloud Console: https://console.cloud.google.com/
文档创建日期: 2026-03-15 最后更新: 2026-03-15