资讯详情

资讯详情

gogcli `gog classroom guardians get` 命令详解:查询 Google Classroom 监护人信息

gogcligog classroom guardians get命令详解查询 Google Classroom 监护人信息【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcligog classroom guardians get是 gogcliGoogle Workspace in your terminal中用于按 ID 精确查询某个学生指定 Guardian监护人详情的只读命令。本文基于 gog-classroom-guardians-get.md 展开结合 classroom_guardians.go 的源码实现与 execute_classroom_more_commands_test.go 的测试用例讲解命令语法、参数校验、输出格式、底层 API 调用链与常见错误处理读完即可在终端和脚本中熟练使用。命令定位Guardians 子命令族中的查询入口在 gogcli 的 Classroom 命令树中guardians是 ClassroomCmd 下的一个子命令分组别名guardianClassroomGuardiansCmd 注册了三个子命令子命令别名说明listls列出某学生的全部监护人默认子命令getinfo, show获取单个监护人详情本文主题deleterm, del, remove删除监护人get是一个纯查询操作不会对 Google Classroom 产生任何写入适合在脚本、巡检与数据核对场景中安全使用。基本用法与别名根据文档的命令行骨架完整语法为gog classroom (class) guardians (guardian) get (info,show) studentId guardianId括号内的词表示可选别名class可省略作为前缀提示guardians可写作guardianget可写作info或show。因此以下写法完全等价gog classroom guardians get s1 g1 gog classroom guardian get s1 g1 gog classroom guardians info s1 g1 gog classroom guardian show s1 g1从源码 ClassroomGuardiansGetCmd 可以看到命令接收两个位置参数studentId学生 ID与guardianId监护人 ID二者均无默认值、必须显式传入。参数校验空值在请求发出前被拦截在Run方法中classroom_guardians.gogogcli 会先做本地校验studentID : strings.TrimSpace(c.StudentID) guardianID : strings.TrimSpace(c.GuardianID) if studentID { return usage(empty studentId) } if guardianID { return usage(empty guardianId) }两侧参数先经strings.TrimSpace去除首尾空白任一为空即返回usage(empty studentId)/usage(empty guardianId)错误不会发起网络请求这保证了 CI 或脚本传入空变量时快速失败而不是等待 API 超时。随后通过requireAccount(flags)解析账户account.go再调用classroomService(ctx, account)构建 Classroom 服务句柄runtime_services.go。底层调用链UserProfiles.Guardians.Get源码核心只有一行 API 调用classroom_guardians.goguardian, err : svc.UserProfiles.Guardians.Get(studentID, guardianID).Context(ctx).Do()对应 Google Classroom API 的userProfiles.guardians.get接口路径语义为UserProfiles面向用户资料域的 API 分组Guardians.Get(studentID, guardianID)按“学生 ID 监护人 ID”精确匹配.Context(ctx)将 CLI 上下文含取消/超时透传给底层 HTTP 请求.Do()执行请求并反序列化classroom.Guardian对象。返回的Guardian结构主要字段包括GuardianId、StudentId以及内嵌的GuardianProfileUserProfile含EmailAddress与Name这正是后面输出格式化所依赖的数据。输出格式人类可读的键值对非 JSON 模式下命令将监护人信息以key\tvalue的 TSV 风格逐行打印classroom_guardians.goid some-guardian-id student_id some-student-id email guardianexample.com name Guardian Full Name字段语义输出键来源说明idguardian.GuardianId监护人记录 IDstudent_idguardian.StudentId关联的学生 IDemailprofileEmail(guardian.GuardianProfile)监护人邮箱取UserProfile.EmailAddressnameprofileName(guardian.GuardianProfile)监护人姓名其中profileEmail与profileName是 classroom_helpers.go 中的辅助函数profileName优先返回Name.FullName为空时拼接GivenName FamilyNameprofileEmail直接返回UserProfile.EmailAddress若GuardianProfile为空指针两者均返回空字符串不会 panic。JSON 输出脚本友好的结构化结果指定--json别名-j、--machine后命令改为结构化输出classroom_guardians.gogog classroom guardians get s1 g1 --json输出形如{ guardian: { guardianId: g1, studentId: s1, guardianProfile: { id: user1, name: { fullName: Guardian Full Name, givenName: Guardian, familyName: Full Name }, emailAddress: guardianexample.com } } }关键点JSON 键固定为guardian外层无nextPageToken之类的分页信封字段分页信封主要出现在 list 类命令参见 classroom_list_helpers.go可与--results-only配合只输出主结果与--select/--fields配合可按字段裁剪例如只取邮箱非常适合jq管道处理或直接赋值给脚本变量。常用全局 Flags 解读get命令继承 gogcli 全部根级 Flags完整表格见 gog-classroom-guardians-get.md与本命令最相关的几项Flag类型默认值说明-a/--account/--acctstring—指定账户邮箱、别名或auto用于多账户场景--clientstring—指定 OAuth 客户端名选择对应凭据与令牌桶--access-tokenstring—直接使用一次性访问令牌绕过存储的刷新令牌约 1 小时过期--quota-projectstring—指定计费项目作为X-Goog-User-Project头发送-j/--json/--machineboolfalseJSON 输出适合脚本-p/--plain/--tsvboolfalse稳定可解析的纯文本输出TSV、无颜色--readonlyboolfalse运行时拦截所有变更请求get本身只读天然兼容--no-input/--non-interactivebool—禁止交互提示CI 环境推荐--homestring—覆盖 gogcli 配置/数据/状态/缓存根目录等价于GOG_HOME--colorstringauto颜色输出策略auto\|always\|never-v/--verbosebool—开启详细日志-n/--dry-run等bool—只打印预期动作对本只读命令无副作用--gmail-no-sendboolfalse阻止 Gmail 发送类操作Agent 安全开关与 Classroom 无直接关系--enable-commands/--enable-commands-exact/--disable-commands可用于按点路径裁剪命令树例如仅放行classroom.guardians.get。错误处理可操作的诊断提示gogcli 对 Classroom API 常见错误做了友好包装classroom_helpers.goAPI 未启用当错误包含accessNotConfigured或Classroom API has not been used时提示在 Google Cloud Console 启用 Classroom API权限不足当错误包含insufficientPermissions或insufficient authentication scopes时提示重新执行gog auth add account --services classroom以获取正确 OAuth 授权范围其他错误原样透传。因此遇到 404监护人不存在或不属于该学生以外的失败时先按提示检查 API 开关与授权范围即可快速定位。与其他 Guardians 命令的配合在真实场景中get通常与列表、删除命令配合使用同一文件中的兄弟实现 classroom_guardians.go、classroom_guardians.go# 1. 列出某学生的所有监护人拿到 guardianId gog classroom guardians list s1 --json # 2. 用 get 精确核对其邮箱与姓名 gog classroom guardians get s1 g1 --json # 3. 脚本化将查询结果写入变量 EMAIL$(gog classroom guardians get s1 g1 --json | jq -r .guardian.guardianProfile.emailAddress)list输出的表格列定义在 classroom_presentation.goGUARDIAN_ID/EMAIL/NAME与get输出的字段一一对应便于在两个命令间对齐数据。测试用例 execute_classroom_more_commands_test.go 也展示了list → get → delete的标准调用序列。总结gog classroom guardians get是一个轻量、可脚本化的监护人查询命令两个必填位置参数、严格本地校验、单次精确 API 调用、人读/机读双模式输出并对常见 API 错误给出可操作提示。无论是日常核对学生监护人信息还是编写自动化巡检脚本它都能与guardians list、guardians delete、guardian-invitations系列命令一起构成完整的监护人生命周期管理闭环。相关文档见 gog-classroom-guardians.md 与 命令索引。【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →