关于 google-workspace
google-workspace 是用于管理三个指定账户中 Gmail、Calendar、Drive、Tasks 和 Chat 的技能。它通过脚本提供常见操作,并可显式指定账户或根据上下文选择账户。
主要功能
- 01Gmail 列表、搜索、读取与发送
- 02Calendar 活动搜索与管理
- 03Drive 文件浏览与创建
- 04Google Tasks 任务管理
- 05Chat 空间与消息操作
- 06三账户选择及跨账户操作
适用场景
- 01查找指定账户中的未读邮件
- 02安排或修改日历活动
- 03搜索并上传 Drive 文件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ krishagel/ geoffrey --skill google-workspace安装后在 Claude Code 中输入/google-workspace确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
bun.lockpackage.jsonauth/GOOGLE_CLOUD_SETUP.mdoauth_setup.jstoken_manager.jscalendar/create_event.jslist_events.jssearch_events.jsupdate_event.jschat/get_eod_messages.jslist_spaces.jsread_messages.jssend_message.jsdocs/create_doc.jsedit_doc.jsread_doc.jsdrive/create_file.jsdownload_file.jslist_files.jsread_file.jsgmail/get_unread_summary.jslist_messages.jsread_message.jssearch_messages.jssend_message.jssend_with_attachment.jssend_with_attachments.jssheets/create_sheet.jsedit_sheet.jsread_sheet.js详细介绍
Google Workspace 技能
概述
统一集成 Google Workspace,可管理三个账号中的邮件、日历、文件和通信:
| 别名 | 用途 | 邮箱 |
|---|---|---|
psd | 工作 | PSD 学区邮箱 |
kh | 个人 | 个人 Gmail |
hrg | 商务 | 咨询与房地产 |
账号选择
明确指定
- “查看我的 psd 邮件”
- “从 hrg 发送邮件”
- “查看 kh 明天的日历”
根据上下文推断
Geoffrey 会根据上下文推断合适的账号:
- 工作相关 →
psd - 个人事务 →
kh - 商务/房地产 →
hrg
可用操作
Gmail
| 脚本 | 说明 | 示例 |
|---|---|---|
list_messages.js | 列出收件箱、未读邮件或指定标签下的邮件 | “显示未读的 psd 邮件” |
read_message.js | 获取完整邮件内容 | “阅读那封邮件” |
send_message.js | 撰写并发送邮件 | “给 John 发邮件,内容关于……” |
send_with_attachment.js | 发送带文件附件的邮件 | “发送报告并附上 PDF” |
search_messages.js | 使用 Gmail 运算符搜索 | “查找上周 Sarah 发来的邮件” |
get_unread_summary.js | 未读邮件数量和热门邮件 | “有多少封未读邮件?” |
日历
| 脚本 | 说明 | 示例 |
|---|---|---|
list_events.js | 获取即将举行的活动 | “我今天的日历上有什么安排?” |
create_event.js | 安排新活动 | “安排明天下午 2 点开会” |
update_event.js | 修改现有活动 | “把那场会议改到下午 3 点” |
search_events.js | 按条件查找活动 | “查找和 Mike 的会议” |
Drive
| 脚本 | 说明 | 示例 |
|---|---|---|
list_files.js | 浏览/搜索文件 | “查找预算电子表格” |
read_file.js | 获取文件内容 | “给我看看那份文档” |
create_file.js | 创建新文档/电子表格 | “创建一个新电子表格” |
upload_file.js | 上传本地文件 | “把这个上传到 Drive” |
任务
| 脚本 | 说明 | 示例 |
|---|---|---|
list_tasks.js | 获取任务列表 | “显示我的 Google Tasks” |
create_task.js | 添加新任务 | “添加任务到 Google Tasks” |
complete_task.js | 标记为已完成 | “完成那个任务” |
Chat
| 脚本 | 说明 | 示例 |
|---|---|---|
list_spaces.js | 获取可用空间 | “列出聊天空间” |
send_message.js | 在空间中发消息 | “在团队聊天中发消息” |
read_messages.js | 获取聊天记录 | “显示最近的聊天消息” |
使用模式
运行脚本
所有脚本都使用 token_manager 进行身份验证:
const { getAuthClient } = require('./auth/token_manager');
async function main() {
const account = process.argv[2] || 'psd';
const auth = await getAuthClient(account);
// Use auth with Google API
const gmail = google.gmail({ version: 'v1', auth });
// ...
}
输出格式
所有脚本都返回 JSON:
{
"success": true,
"account": "psd",
"data": { ... },
"metadata": {
"timestamp": "2024-01-15T10:30:00Z",
"count": 5
}
}
错误处理
{
"error": "Token expired",
"account": "psd",
"action": "Run: node token_manager.js refresh psd"
}
所需设置
使用此技能前:
- 完成 Google Cloud Console 设置(参见
auth/GOOGLE_CLOUD_SETUP.md) - 将凭据添加到
~/Library/Mobile Documents/com~apple~CloudDocs/Geoffrey/secrets/.env - 对所有三个账号进行身份验证
- 对于 PSD 账号:在 Google Admin 中将 OAuth 应用加入允许列表
跨账号操作
有些操作可以跨账号进行:
- “转发这封邮件到我的个人邮箱”
- “将此文件复制到我的工作云端硬盘”
- “添加到两个日历中”
Gmail 搜索运算符
支持标准 Gmail 搜索:
from:- 发件人to:- 收件人subject:- 主题行has:attachment- 包含附件after:/before:- 日期范围is:unread- 仅未读邮件label:- 按标签搜索
示例:“搜索 psd 邮件,查找 from:[email protected] after:2024-01-01 has:attachment”
备注
- 访问令牌 1 小时后过期(会自动刷新)
- 刷新令牌不会过期,除非被撤销
- 所有 API 调用都受到 Google 的速率限制
- Keep API 的可用性有限(可能尚未启用)
评论
支持 Markdown