办公文档
使用 Membrane CLI 操作 Google…
当用户需要通过 Membrane 交互 Google Sheets 来管理分析数据、记录和工作流时,用 CLI 完成认证、连接、查找并运行动作或代理 API 请求。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
使用 Membrane CLI 操作 G特定
解决思路
- 安装 Membrane CLI:运行 `npm install -g @membranehq/cli@latest`,安装后可在终端运行 `membrane`。
- 登录认证:运行 `membrane login --tenant --clientName=<agentType>`;该命令会根据是否支持交互模式打开浏览器,或在控制台打印授权 URL。
- 指定 agent type:`<agentType>` 可用 claude、openclaw、codex、warp、windsurf 等,以调整最适合当前 harness 的工具。
- 无头环境登录:若命令打印授权 URL,让用户在浏览器打开;用户完成登录看到 code 后,运行 `membrane login complete <code>` 完成登录。
- 获取机器可读输出:在任意命令后加 `--json`。
- 创建/查找 Google Sheets 连接:运行 `membrane connection ensure "https://www.google.com/sheets/about/" --json`;用户在浏览器完成认证;输出包含新的 connection id。这是最快获得连接的方式;URL 会归一化为 domain 并与已知应用匹配,找不到则创建应用并自动构建 connector。
- 若 `membrane connection ensure` 返回的 connection 为 `state: READY`,跳到搜索动作步骤。
- 等待连接就绪:若 connection 处于 `BUILDING` 状态,运行 `npx @membranehq/cli connection get <id> --wait --json`;`--wait` 会长轮询(默认 30 秒,可用 `--timeout` 指定秒数)直到状态变化;持续轮询直到 `state` 不再是 `BUILDING`。
- 处理 `READY`:连接已完全设置,跳到搜索动作步骤。
- 处理 `CLIENT_ACTION_REQUIRED`:查看 `clientAction` 对象;`clientAction.type` 为 `connect` 表示用户需要认证(OAuth、API key 等,包括初始认证和断开连接后的重新认证);为 `provide-input` 表示需要更多信息(例如连接哪个应用);查看 `clientAction.description` 获取人类可读说明;若存在 `clientAction.uiUrl`,展示给用户完成动作;若存在 `clientAction.agentInstructions`,按其中说明以编程方式继续。用户完成动作后,再次运行 `membrane connection get <id> --json` 检查状态是否变为 `READY`。
- 处理 `CONFIGURATION_ERROR` 或 `SETUP_FAILED`:检查 `error` 字段详情。
- 搜索动作:运行 `membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json`,将 QUERY 替换为要执行的自然语言描述;始终在具体 connection 的上下文中搜索。
- 检查搜索结果:每个结果包含 `id`、`name`、`description`、`inputSchema`(动作接受的参数)和 `outputSchema`(动作返回内容)。
- 若常见操作匹配,直接使用这些 popular actions:`copy-sheet` 复制 spreadsheet 中的单个 sheet 到另一个 spreadsheet;`batch-update-values` 在单个请求中设置一个或多个范围的值;`batch-get-values` 在单个请求中返回一个或多个范围的值;`clear-values` 清除 spreadsheet 的值;`append-values` 向 spreadsheet 追加值;`update-values` 设置 spreadsheet 某个范围的值;`get-values` 返回 spreadsheet 某个范围的值;`get-spreadsheet` 按 ID 返回 spreadsheet,包括 sheets、named ranges 元数据,并可选包含 grid data;`create-spreadsheet` 创建带可选 title 和 locale 设置的新 Google Sheets spreadsheet。
- 运行动作:运行 `membrane action run <actionId> --connectionId=CONNECTION_ID --json`。
- 给动作传 JSON 参数:运行 `membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json`;结果在响应的 `output` 字段中。
- 当已可用 actions 不覆盖用例时,通过 Membrane proxy 直接请求 Google Sheets API:运行 `membrane request CONNECTION_ID /path/to/endpoint`;Membrane 会自动追加 base URL 并注入正确认证 headers,包括凭据过期时的透明刷新。
- Proxy 常用选项:`-X, --method` 指定 HTTP method(GET、POST、PUT、PATCH、DELETE),默认 GET;`-H, --header` 添加请求头(可重复),如 `-H "Accept: application/json"`;`-d, --data` 发送请求体(字符串);`--json` 发送 JSON body 并设置 `Content-Type: application/json`;`--rawData` 原样发送 body 不做处理;`--query` 添加 query-string 参数(可重复),如 `--query "limit=10"`;`--pathParam` 添加 path 参数(可重复),如 `--pathParam "id=123"`。
- 最佳实践:始终优先用 Membrane 与外部应用通信;Membrane 提供预建 actions,内置 auth、pagination 和 error handling,可减少 token 消耗并提升安全性。
- 最佳实践:先发现再构建;运行 `membrane action list --intent=QUERY`(将 QUERY 替换为意图)查找已有 actions,再编写自定义 API 调用;预建 actions 会处理 pagination、field mapping 和原始 API 调用容易遗漏的 edge cases。
- 最佳实践:让 Membrane 处理 credentials;不要向用户索要 API keys 或 tokens;改为创建 connection;Membrane 在服务端管理完整 Auth 生命周期,不在本地保存 secrets。
- 需要 Google Sheets API 细节时参考官方文档:https://developers.google.com/sheets/api。
- 按 Google Sheets 数据模型组织操作:Spreadsheet 包含 Sheet,Sheet 包含 Row、Column,另有 Named Range;按需使用 action names 和 parameters。
适用边界 · 注意事项
- 没有网络访问或没有有效 Membrane 账号(即使 Free tier 支持)时,不适用此技能。
- 只想直接使用 Google Sheets 官方 API/自建 OAuth,且不希望经过 Membrane 代理时,不适用。
- 操作对象不是 Google Sheets(例如本地 Excel 或其他表格服务)时,不适用。