关于 google-workspace
google-workspace 是通过 API 处理 Gmail、Drive、Calendar、Docs 和 Sheets 等任务的 skill。它按邮箱管理账户,每次 API 调用都必须明确指定账户。
主要功能
- 01通过 JavaScript 调用 Workspace API
- 02管理 OAuth 登录和账户配置
- 03按邮箱选择 API 调用账户
- 04设置权限范围和执行超时
适用场景
- 01列出指定账户的 Drive 文件
- 02使用特定配置执行 Gmail 查询
- 03跨服务调用 Workspace API
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mitsuhiko/ agent-stuff --skill google-workspace安装后在 Claude Code 中输入/google-workspace确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
package-lock.jsonpackage.jsonscripts/auth.jscommon.jsworkspace.js详细介绍
Google Workspace
使用此技能处理 Google Workspace 任务(Gmail、Drive、Calendar、Docs、Sheets 等)。
文件
scripts/auth.js— OAuth 登录/状态/清除 + 账户枚举scripts/workspace.js— 基于 JavaScript 执行的 API 运行器
账户模型(多账户)
此技能按电子邮件地址配置个人资料。
- 没有默认账户。
- 每次 API 调用都必须指定
--email <[email protected]>。 - 令牌按电子邮件地址存储在
~/.pi/google-workspace/tokens/下。
运行 API 调用前,请先发现已登录的可用账户:
node scripts/auth.js accounts
用法
始终使用 exec,并始终提供 --email。
node scripts/workspace.js exec --email [email protected] <<'JS'
const me = await workspace.whoAmI();
const files = await workspace.call('drive', 'files.list', {
pageSize: 5,
fields: 'files(id,name,mimeType)',
});
return { me, files: files.files };
JS
exec 脚本中可用的内容:
auth(已授权的 OAuth 客户端)google(googleapis根对象)workspace.accountEmail(所选个人资料的电子邮件地址)workspace.call(service, methodPath, params, {version})workspace.service(service, {version})workspace.whoAmI()
可选标志:
--timeout <ms>(默认值为 30000,最大值为 300000)--scopes s1,s2--script 'return 42'
Agent 指南
- 每个用户请求尽量使用一个
exec脚本。 - 尽量缩小请求载荷(使用
fields、maxResults和最少的属性)。 - 对互不依赖的请求使用
Promise.all。 - 切勿打印令牌内容。
- 如果用户未指定账户,请运行
node scripts/auth.js accounts,并选择/确认一个明确的电子邮件地址。 - 如果身份验证失败,请先运行
node scripts/auth.js accounts查看已知个人资料。 - 如果可能存在账户不匹配,请在所选个人资料中运行
workspace.whoAmI()。 - 遇到 401/403/未授权错误时,切换账户(
--email ...)或重新登录该个人资料。
未授权/切换账户操作指南
如果请求因未授权/禁止访问/权限不足而失败:
- 枚举个人资料:
node scripts/auth.js accounts
- 使用预期账户重试:
node scripts/workspace.js exec --email [email protected] <<'JS'
return await workspace.whoAmI();
JS
- 如果令牌已过期或缺少所需范围,请重新登录该账户:
node scripts/auth.js login --email [email protected]
- 使用相同的
--email重试原始请求。
Gmail 计数简例
node scripts/workspace.js exec --email [email protected] <<'JS'
const gmail = google.gmail({ version: 'v1', auth });
let trash = 0;
let pageToken;
do {
const res = await gmail.users.messages.list({
userId: 'me',
q: 'in:trash',
maxResults: 500,
pageToken,
fields: 'messages/id,nextPageToken',
});
trash += (res.data.messages || []).length;
pageToken = res.data.nextPageToken;
} while (pageToken);
return { currentlyInTrash: trash };
JS
设置 + 身份验证
node scripts/auth.js login --email [email protected]
说明:
- 首次运行时会自动安装依赖项。
- 默认身份验证模式为云端(无需本地
credentials.json)。 - 可选的本地模式:
GOOGLE_WORKSPACE_AUTH_MODE=local,并将凭据放在~/.pi/google-workspace/credentials.json。 - 实用诊断信息:
node scripts/auth.js accounts
node scripts/auth.js status --email [email protected]
node scripts/auth.js clear --email [email protected]
评论
支持 Markdown