ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

IronClaw 扩展开发指南:Google Sheets append_values 追加写入操作全解析

IronClaw 扩展开发指南:Google Sheets append_values 追加写入操作全解析 人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载本篇技术指南聚焦 IronClaw Agent OS 的 Google Sheets 扩展中google-sheets.append_values操作的完整用法如何按 spreadsheet ID 向现有数据之后追加行、如何借助google-drive.list_files由表格名称解析文件 ID、如何理解输入 Schema 与返回值结构。结合仓库内 WASM 工具源码与扩展清单你将掌握在 Agent 对话与自动化流程中安全、规范地调用该写操作的全部要点。操作定位append_values 在 Google Sheets 扩展中的角色IronClaw 的 Google Sheets 扩展扩展 IDgoogle-sheets是一组面向 Agent 的表格能力覆盖创建、读取、写入、追加、清空以及工作表tab管理与单元格格式化共 11 个工具。它属于纯数据包data-only package不包含 crate可移植的工具半体以 WASM 访客guest形式交付产物固化在 wasm/google_sheets_tool.wasm访客源码位于 wasm-src/由ironclaw_extension_support::packages::gsuite以资产宏嵌入宿主见 packages/gsuite.rs。append_values是其中唯一的追加写入操作与write_values覆盖指定区域不同它定位到表格中已有数据的末尾在其后新增行适合日志落库、流水追加、批量登记等持续增长型场景。原始操作说明 append_values.md 给出的核心语义是按 spreadsheet ID 在现有数据之后追加行。第一步确定 spreadsheet ID——名称解析规则追加操作要求传入spreadsheet_id而用户往往只提供表格的名称/标题。原始操作说明明确给出了解析规则如果用户只提供了 spreadsheet 名称/标题首先使用 Google Drive 的google-drive.list_files找到该 spreadsheet 的文件 ID。这是因为spreadsheet ID 与 Google Drive 文件 ID 是同一个值源码 lib.rs 与 types.rs 均明确注释了这一点。因此标准调用链是Agent 收到用户给的表格名称调用google-drive.list_files在 Drive 中检索同名文件取回id将该id作为spreadsheet_id传入append_values。输入 Schema 与参数详解append_values的输入由 append_values.input.v1.json 定义JSON Schema draft-07并在 types.rs 中以AppendValues变体做 serde 约束两者保持一致。参数如下参数类型必填说明spreadsheet_idstring是目标电子表格的 ID即 Google Drive 文件 IDrangestring是A1 记法范围用于定位待追加数据的表格区域例如Sheet1!A:E、Sheet1!A1:B10valuesarray是待追加的行数据二维数组每行是单元格值数组例如[[Bob, 25], [Carol, 30]]value_input_optionstring否RAW或USER_ENTERED默认USER_ENTERED注意additionalProperties: false即不允许传入 Schema 之外的字段。关于 range 与 value_input_option 的语义range在此处并非写入的精确坐标而是告诉 Sheets API 在哪个区域里找已有数据表追加点由 API 根据区域内最后一个有数据的行自动确定。源码 api.rs 中的append_values实现正是把该 range 原样带进请求体与 URL。value_input_option控制单元格值的解释方式默认值在 types.rs 中定义为USER_ENTEREDUSER_ENTERED会按 Google Sheets 的公式/格式解析规则解释字符串例如SUM(...)会变成公式2026-09-23会变成日期RAW则将值视为字面字符串原样写入不做任何解析。完整请求示例参考 lib.rs 中的官方示例一次典型的追加调用形如{ spreadsheet_id: abc123, range: Sheet1!A:B, values: [[Bob, 25]] }若希望值按字面字符串写入可显式携带value_input_option{ spreadsheet_id: abc123, range: Sheet1!A:E, values: [[2026-09-23, log-entry-42, ok]], value_input_option: RAW }不要手动传 action 字段操作说明强调host 根据 capability id 选择该操作只需提供输入 Schema 描述的参数不要包含 action 字段。这与 lib.rs 的params_with_action实现完全一致宿主侧调用方若在参数中携带action字段会被直接判定为invalid_parameters输入错误对应单元测试 lib.rs 验证了这一点。操作名由宿主依据 capability idgoogle-sheets.append_values→append_values映射见 lib.rs注入调用方只需关心参数本身。底层实现请求如何组装与发出append_values最终由 api.rs 中的同名函数执行其行为与 Google Sheets API v4 的spreadsheets.values.append端点一一对应POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheet_id}/values/{range}:append ?valueInputOption{value_input_option}insertDataOptionINSERT_ROWS关键实现细节请求体固定携带majorDimension: ROWS即以行优先解释values二维数组同时回显range与values追加语义通过查询参数insertDataOptionINSERT_ROWS实现新数据以新增行的方式插入而不是覆盖已有单元格源码固定拼接该参数无用户选项所有请求统一经由宿主 HTTP 能力host::http_request发出WASM 访客永远接触不到真实的 OAuth token——凭据注入与限流由宿主侧完成见 api.rs 的文件头注释URL 中的spreadsheet_id与range会先经url_encode做百分号编码。返回值UpdateResult 结构追加成功后返回UpdateResult定义于 types.rsappend_values与write_values共用包含四个字段字段类型说明updated_rangestring实际更新的 A1 范围含 sheet 名updated_rowsinteger更新的行数updated_columnsinteger更新的列数updated_cellsinteger更新的单元格总数这些值来自 Sheets API 响应中的updates对象见 api.rsAgent 可据此向用户反馈已追加 N 行、N 个单元格。凭据、作用域与安全模型append_values属于外部写操作在 manifest.toml 中声明如下effectsnetwork、use_secret、external_write三个副作用标签default_permissionask——默认情况下需要用户授权确认origin_gate_matrixloop_run gated_unless_granted、product forbidden、automation forbidden即在产品端与自动化通道默认禁用仅可在 agent loop 中在授权前提下调用visibilitymodel即该工具只暴露给模型使用credentials凭据句柄google_runtime_token厂商googleOAuth 作用域为https://www.googleapis.com/auth/spreadsheets读写受众主机sheets.googleapis.com以authorization: Bearer token请求头注入。认证整体走 OAuth 2.0 授权码流程oauth2_code PKCEs256[auth.google]段还配置了access_typeoffline的刷新令牌并对闲置账户设置 604800 秒7 天的 keepalive 主动刷新见 manifest.toml。管理员需在部署时配置共享的 Google OAuth 客户端凭据google_oauth_client_id/google_oauth_client_secret。此外非 2xx 响应会被转换为结构化错误401 映射为AuthRequired错误码google_api_error_status_401其余状态映射为Client并附上api_status_{status}错误码与响应正文见 api.rs 及对应单元测试 api.rs。与 write_values 的差异及 A1 记法建议write_values使用PUT覆盖range指定区域见 api.rsappend_values使用POST ...:append在已有数据后新增行。需要幂等覆盖用前者需要持续累积用后者。range 推荐使用列范围而非固定行号如Sheet1!A:E这样追加点会随数据增长自动下移Sheet1!A1:B10这类固定范围也可用但若数据已超出该范围API 会按实际数据末尾追加。数值型 sheet IDsheetId与 sheet 名称不同前者是内部数字标识如0后者是可读标题。追加操作按名称定位 tab经 A1 记法而format_cells、delete_sheet等操作需要数字 sheet ID可通过google-sheets.get_spreadsheet获取。验证与测试入口包级说明与资源清单README.md、manifest.tomlWASM 访客实现api.rs、lib.rs、types.rs宿主嵌入与 gsuite 家族资产packages/gsuite.rs清单投影测试cargo test -p ironclaw_extension_registryWASM 产物新鲜度校验python3 scripts/ci/check-wasm-artifact-freshness.py见 README.md。遵循以上调用约定即可让 Agent 稳定、安全地完成向既有表格末尾追加数据这一高频任务。赞分享人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载相关推荐gog sheets 实战指南用 gog CLI 在终端全面操作 Google Sheetsgog sheets 实战指南用 gog CLI 在终端全面操作 Google Sheets gog 是一个把 Google Workspace 装进终端的命如何在Obsidian中无缝管理电子表格终极Excel插件完整指南如何在Obsidian中无缝管理电子表格终极Excel插件完整指南 你是否曾为在笔记软件中处理表格数据而烦恼当需要在Obsidian中创建预算表、项目进度表人工智能AI 应用交互助手AI AgentIronClaw google-docs 扩展完全指南语义化文档工作流与 WASM 工具实现解析IronClaw google docs 扩展完全指南语义化文档工作流与 WASM 工具实现解析 本文以 IronClaw 开源仓库中 google docs人工智能AI 应用交互助手AI Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表