尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

gogcli 实战:使用 `gog slides info` 获取 Google Slides 演示文稿元数据

发布时间:2026/9/17 9:07:42

资讯中心
01
ARTICLE

gogcli 实战:使用 `gog slides info` 获取 Google Slides 演示文稿元数据

gogcli 实战:使用 `gog slides info` 获取 Google Slides 演示文稿元数据
gogcli 实战使用gog slides info获取 Google Slides 演示文稿元数据【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli本篇技术指南聚焦 gogcli 项目Google Workspace in your terminal中的gog slides info命令完整讲解其用法、全部标志参数、输出字段含义以及底层源码实现。读完本文你将掌握如何用一条命令快速获取任意 Google Slides 演示文稿的标题、尺寸、修订号、母版与版式信息并能结合源码理解其 Drive Slides 双 API 调用链与 EMU→PT 单位换算等实现细节。命令定位Slides 家族中的元数据入口gog slides info用于获取 Google Slides 演示文稿presentation的元数据是 gogcli 的 Google Slides 命令族gog slides中最基础的只读侦察命令。与同族的gog slides raw原样转储Presentations.Get的完整 API 响应不同info会对原生 API 响应做结构化提炼与单位归一化输出更易读、更稳定的字段适合人机两用。该命令的完整文档由gog schema --json自动生成文档头部标注Generated from gog schema --json可运行make docs-commands重新生成因此文档与命令实际行为始终严格对齐。用法与参数gog slides (slide) info (get,show) presentationId命令名支持多层别名子命令slides可缩写为slideinfo可缩写为get或show。位置参数presentationId是唯一必填参数对应源码中SlidesInfoCmd结构体slides.gotype SlidesInfoCmd struct { PresentationID string arg: name:presentationId help:Presentation ID }presentationId可以是 URL 形态的 ID 或纯 ID。命令执行时会先经过normalizeGoogleID规范化处理并会拒绝空参数源码见 info_via_drive.goid normalizeGoogleID(strings.TrimSpace(id)) if id { return nil, usage(fmt.Sprintf(empty %s, argName)) }典型调用示例# 直接输出元数据文本 gog slides info 1A2B3C4D5E6F7G8H9I0J # 使用别名 gog slides show 1A2B3C4D5E6F7G8H9I0J gog slide info 1A2B3C4D5E6F7G8H9I0J # JSON 模式适合脚本与 LLM 消费 gog slides info -j 1A2B3C4D5E6F7G8H9I0J # TSV 稳定解析模式 gog slides info -p 1A2B3C4D5E6F7G8H9I0J输出字段详解info的输出由两部分拼接而成Drive 文件元数据 Slides 演示文稿原生元数据两者分别来自两次 API 调用详见下文底层实现原理。文本模式默认 / TSV文本模式下首先输出 Drive 侧的文件信息id、name、mime、link、created、modified、parents见 info_via_drive.go随后输出 Slides 侧的结构化字段均由 slides_info.go 中的Run逻辑逐行打印输出行含义说明slidesTitle演示文稿标题仅当与 Drive 文件名不一致时输出locale语言区域如en-USslides幻灯片页数对应Presentations.Get返回的 Slides 切片长度pageSize页面尺寸格式宽度 x 高度 PTEMU 已换算为磅见下文masters母版数量对应 Masters 切片长度layouts版式数量对应 Layouts 切片长度master母版详情格式master objectId displayName 类型RGB,...主题色列表母版行中的主题色为TypeRGB键值对列表例如ACCENT1#FF8000,LIGHT1#FFFFFF。JSON 模式-j/--jsonJSON 模式输出顶层为file与presentation两个字段slides_info.go{ file: { id: 1A2B3C4D5E6F7G8H9I0J, name: Deck, mimeType: application/vnd.google-apps.presentation }, presentation: { title: Deck, locale: en-US, revisionId: rev1, slideCount: 2, pageSize: { width: 960, height: 540, unit: PT }, masters: [ { objectId: master1, displayName: Simple Light, themeColors: [ { type: ACCENT1, rgb: #FF8000 } ] } ], layouts: [ { objectId: layout1, name: TITLE_AND_BODY, displayName: Title and body, masterObjectId: master1 } ] } }上述结构直接对应 slides_info.go 中的四个结构体slidesPresentationInfo、slidesPageSize、slidesMasterInfo、slidesLayoutInfo与slidesThemeColorInfo。JSON 模式下还可配合--results-only只输出主结果与--select按点路径选取字段进一步裁剪输出。全局标志参数以下标志对该命令同样生效与gog slides父命令一致来自 gog-slides.mdFlagTypeDefaultHelp--access-tokenstringUse provided access token directly (bypasses stored refresh tokens; token expires in ~1h)-a--account--acctstringAccount email, alias, or auto for authenticated Google API commands--clientstringOAuth client name (selects stored credentials token bucket)--colorstringautoColor output: auto|always|never--disable-commandsstringComma-separated list of disabled commands; dot paths allowed-n--dry-run--dryrun--noop--previewboolDo not make changes; print intended actions and exit successfully--enable-commandsstringComma-separated list of enabled command prefixes; dot paths allowed (restricts CLI)--enable-commands-exactstringComma-separated list of exact enabled commands; dot paths allowed and parent commands do not enable children-y--force--assume-yes--yesboolSkip confirmations for destructive commands--gmail-no-sendboolfalseBlock Gmail send operations (agent safety)-h--helpkong.helpFlagShow context-sensitive help.--homestringOverride gogcli config/data/state/cache root (equivalent to GOG_HOME)-j--json--machineboolfalseOutput JSON to stdout (best for scripting)--no-input--non-interactive--noninteractiveboolNever prompt; fail instead (useful for CI)-p--plain--tsvboolfalseOutput stable, parseable text to stdout (TSV; no colors)--quota-projectstringGoogle Cloud project to bill for API usage (sent as X-Goog-User-Project; some APIs require it with --access-token or ADC)--readonlyboolfalseBlock mutating API requests at runtime; auth add also requests read-only OAuth scopes--results-onlyboolIn JSON mode, emit only the primary result (drops envelope fields like nextPageToken)--select--pick--projectstringIn JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands.-v--verboseboolEnable verbose logging--versionkong.VersionFlagPrint version and exit--wrap-untrustedboolfalseIn JSON/raw output, wrap fetched text fields in external untrusted-content markers对info这类只读命令而言最常用的组合是-j输出 JSON 供脚本/LLM 消费-p输出稳定 TSV-a指定账号在 CI 环境中配合--no-input避免交互卡死--readonly可进一步强制阻断所有变更类 API 请求作为安全兜底。底层实现原理源码级第一步Drive 层解析与类型校验Run首先调用loadInfoViaDriveinfo_via_drive.go。该函数通过 Drive APIFiles.Get获取文件并做三重校验参数规范化normalizeGoogleID 去除首尾空白空 ID 直接报 usage 错误跨域支持请求携带SupportsAllDrives(true)因此共享云端硬盘Shared Drives中的演示文稿也能正常查询MIME 类型强校验ExpectedMime被设为application/vnd.google-apps.presentation若传入的不是 Slides 演示文稿例如传了一个 Google Docs ID会直接报错file is not a Google Slides presentation (mimeType...)避免后续 API 返回误导性数据。第二步Slides 层拉取原生元数据随后通过slidesServiceruntime_services.go获取 Slides API 客户端调用svc.Presentations.Get(file.Id)拉取演示文稿完整结构再交给buildSlidesPresentationInfoslides_info.go做结构化提炼。这里值得注意的两处数据转换页面尺寸 EMU→PT 换算Google Slides API 以 EMUEnglish Metric Unit返回页面尺寸而buildSlidesPresentationInfo内部调用slidesPageBoundsslides_introspection.go将 EMU 除以slidesEMUPerPoint换算为以 PT磅为单位的宽度/高度若遇到非 PT/EMU 单位则返回错误。因此经典 16:9 画布在 API 中是12192000 x 6858000 EMU输出时则显示为960.00 x 540.00 PT。主题色浮点转十六进制Slides API 的主题色以0~1浮点返回slidesRGBHexslides_info.go将其夹取到[0,1]后乘以 255 并取整格式化为#RRGGBB例如 API 返回{red:1.0, green:0.5, blue:0.0}时输出#FF8000。第三步统一输出层数据组装完成后命令根据上下文输出模式分发outfmt.IsJSON(ctx)为真时走 JSON 通道写入filepresentation两个顶层键否则走 TSV 行式输出。这意味着--json、--plain、--select、--results-only等格式控制标志全部由 outfmt 包统一接管与 gogcli 其他命令的行为完全一致。测试验证仓库为info命令提供了完整的单元测试 slides_info_test.go通过 mock HTTP 服务同时模拟 Drive 与 Slides 两个 API 端点验证了以下行为文本/JSON 输出中file与presentation结构的正确组装SlideCount为 2EMU 到 PT 的换算正确性12192000 EMU → 960 PT、6858000 EMU → 540 PTassert.InDelta断言母版主题色浮点转十六进制red1.0, green0.5, blue0.0 → #FF8000版式信息提取TITLE_AND_BODY名称与masterObjectId关联关系。这套测试可作为你验证该命令行为或扩展字段时的参照也印证了前面描述的调用链与换算逻辑。与其他 Slides 命令的配合info通常作为工作流的第一步先用gog slides list-slides或gog slides locate拿到页面/元素 objectId再用info确认演示文稿整体结构与母版/版式关联最后配合 gog slides 家族中的replace-text、insert-image、new-slide、export等命令完成内容操作。更多命令请参见 Command index。小结gog slides info presentationId一条命令即可获取演示文稿的核心元数据支持slide/info|get|show多层别名输出同时包含 Drive 文件元数据与 Slides 原生元数据-j/-p两种稳定格式适合脚本化与 LLM 消费底层为 DriveFiles.Get SlidesPresentations.Get双 API 调用并做了 MIME 类型校验、EMU→PT 换算与主题色归一化保证输出稳定、可直接引用。【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。