使用 lark-cli 的wiki member-list命令查询飞书知识库空间成员【免费下载链接】cliThe official Lark/飞书 CLI tool, maintained by the larksuite team — built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200 commands and 20 AI Agent Skills.项目地址: https://gitcode.com/gh_mirrors/cli414/cli导读wiki member-list是飞书官方 CLI 工具 lark-cli本仓库gh_mirrors/cli414/cli提供的知识库Wiki空间成员查询命令底层封装飞书开放平台接口GET /open-apis/wiki/v2/spaces/:space_id/members。它既能以 JSON/表格/CSV 等多种格式输出空间成员与角色也支持--page-all自动翻页、--page-token游标续页并内置my_library个人知识库别名解析。读完本文你将掌握该命令的全部参数、输出结构、分页语义与权限要求并了解它在源码中的实现机制可直接用于知识库成员审计、权限巡检与自动化脚本。命令概览与核心能力member-list归属于 lark-cli 的 wiki 命令组是一条**只读Risk:read**的快捷命令。它在源码中的定义位于 shortcuts/wiki/wiki_member_list.go其行为与space-list、node-list保持统一默认只取一页数据需要翻页时显式传入--page-all或通过--page-token从指定游标续读。从 shortcuts/wiki/wiki_member_test.go 的注册测试可以确认知识库成员相关的三条命令member-add、member-remove、member-list同时挂载在命令组中其中命令对应接口风险等级所需 Scopemember-listGET /spaces/:space_id/membersreadwiki:member:retrievemember-addPOST /spaces/:space_id/memberswritewiki:member:createmember-removeDELETE /spaces/:space_id/members/:member_idwritewiki:member:update三条命令共享同一套参数校验与成员记录解析逻辑见 shortcuts/wiki/wiki_member_helpers.go因此本文讲解的--space-id语义、my_library别名规则等同样适用于另外两条成员管理命令。基础用法# 默认只取第一页默认每页 50 条 lark-cli wiki member-list --space-id space_id # 自动遍历所有页受 --page-limit 限制默认最多 10 页 lark-cli wiki member-list --space-id space_id --page-all # 自动遍历所有页不设页数上限 lark-cli wiki member-list --space-id space_id --page-all --page-limit 0 # 从指定游标续读无论是否带 --page-all都只取单页 lark-cli wiki member-list --space-id space_id --page-token TOKEN # 查询个人知识库仅限 user 身份 lark-cli wiki member-list --space-id my_library --as user # 切换输出格式 lark-cli wiki member-list --space-id space_id --format pretty lark-cli wiki member-list --space-id space_id --format table关于my_library个人知识库别名my_library是飞书为每个用户提供的“我的知识库”别名。传给它时CLI 会先调用GET /open-apis/wiki/v2/spaces/my_library解析出当前用户真实的space_id再以该 ID 发起成员查询——这是一次两步编排resolve → list。源码见 shortcuts/wiki/wiki_node_create.go 的resolveMyLibrarySpaceID以及 shortcuts/wiki/wiki_member_list.go 的 DryRun 实现。注意my_library是 per-user按用户的别名仅对user身份有效。若以--as bot传入my_library会在校验阶段直接被拒绝报错bot identity does not support --space-id my_library; use an explicit --space-id。这条规则由validateWikiMemberSpaceID强制实施shortcuts/wiki/wiki_member_helpers.go并有对应测试用例覆盖shortcuts/wiki/wiki_member_test.go。参数详解参数类型必填默认值说明--space-idstring是—知识库空间 ID查询个人知识库时传my_library仅限 user 身份--page-sizeint否50每页条数取值范围 1–50--page-tokenstring否—分页游标一旦指定即退化为单页拉取不自动翻页--page-allbool否false自动翻页遍历所有页受--page-limit封顶--page-limitint否10--page-all模式下最多拉取页数0 表示不限--formatenum否jsonjson/pretty/table/csv/ndjson--asenum否auto身份user/bot知识库以用户为中心建议显式传--as user参数校验规则源码级从源码Validate函数shortcuts/wiki/wiki_member_list.go可以确认两条硬性校验--space-id不能为空且必须是通过资源名校验的合法名称缺失时报错--space-id is required and cannot be blank并有测试TestWikiMemberListRequiresSpaceID验证shortcuts/wiki/wiki_member_test.go。--page-size必须在 1–50 之间常量wikiMemberListMaxPageSize 50定义于 shortcuts/wiki/wiki_member_list.go--page-limit必须是非负整数。校验逻辑由validateWikiListPagination提供shortcuts/wiki/wiki_space_list.go。分页标志的组合语义--page-all与--page-token同时出现时--page-token优先命令会打印警告warning: --page-token is set, so --page-all is ignored (single-page fetch from the supplied cursor)然后只从该游标拉取一页。这一判定逻辑位于wikiListShouldAutoPaginate与warnIfConflictingPagingFlagsshortcuts/wiki/wiki_space_list.go。输出格式与字段说明JSON 输出示例{ ok: true, data: { space_id: 7160145948494381236, members: [ { member_id: ou_449b53ad6aee526f7ed311b216aabcef, member_type: openid, member_role: admin }, { member_id: ou_67e5ecb64ce1c0bd94612c17999db411, member_type: openid, member_role: member } ], has_more: false, page_token: }, meta: { count: 2 } }字段说明data.space_id实际查询的知识库空间 ID传入my_library时这里返回解析后的真实 ID见测试TestWikiMemberListResolvesMyLibraryForUsershortcuts/wiki/wiki_member_test.godata.members[]成员数组每项包含member_id成员 ID、member_type成员类型、member_role成员角色data.members[].type可选字段当服务端返回user/chat/department时透传由wikiMemberRecord解析shortcuts/wiki/wiki_member_helpers.godata.has_more/data.page_token默认单页拉取或--page-all被--page-limit截断且上游仍有后续数据时has_moretrue且page_token游标调用方可用该游标续读meta.count本次返回的成员总数JSON 输出由runtime.OutFormat注入见 shortcuts/wiki/wiki_member_list.go。Pretty 输出--format pretty会以缩进块的形式展示成员列表并保留member_type、member_role与可选的type字段。若当前页为空但服务端报告还有更多数据它会提示Current page is empty but the server reports more pages.并给出next page_token引导你继续翻页若确实没有成员则输出No wiki space members found.。渲染逻辑见renderWikiMembersPrettyshortcuts/wiki/wiki_member_list.go。自动翻页的底层实现fetchWikiMembersshortcuts/wiki/wiki_member_list.go实现了完整的分页循环其行为要点如下每页请求都携带page_size游标非空时追加page_token参数非自动模式未传--page-all拉取一页后立即退出自动模式下若has_morefalse或page_token为空则自然结束防死循环保护若服务端返回的page_token与请求时相同却仍标记has_moretrue则打印Stopping pagination: server returned a non-advancing page_token.并停止避免无限循环--page-limit在自动模式下限制最多请求页数pageLimit 0 page1 pageLimit时停止。测试TestWikiMemberListAutoPaginatesAcrossPagesshortcuts/wiki/wiki_member_test.go通过 httpmock 桩验证了第二页请求确实携带了上一页返回的page_token并断言自然结束时has_more与page_token被清空TestWikiMemberListPageLimitTruncatesAndExposesNextCursorshortcuts/wiki/wiki_member_test.go则验证了--page-limit 1截断后输出仍保留has_moretrue与下一游标便于调用方续读。与成员删除/添加命令的配合member-list的输出可直接作为member-remove的输入将输出中的member_id作为--member-idmember_type与member_role必须原样传递因为DELETE /spaces/:space_id/members/:member_id的请求体依赖这两者来精确定位授权记录见 skills/lark-wiki/references/lark-wiki-member-remove.md。可接受的成员类型集合在源码中固定为openid、userid、email、unionid、openchat、opendepartmentid、appid角色集合为admin、member见 shortcuts/wiki/wiki_member_helpers.go。权限要求与注意事项所需 Scopewiki:member:retrieve。源码中声明了最窄的、该接口实际接受的 Scopeshortcuts/wiki/wiki_member_list.go这样只携带wiki:member:retrieve的 token 也能通过授权校验测试TestWikiMemberShortcutsDeclareNarrowScopes固化了这一契约防止未来被放宽shortcuts/wiki/wiki_member_test.go。身份AuthTypes为user与botshortcuts/wiki/wiki_member_test.go但知识库以用户为中心官方建议传--as user且my_library别名仅限 user 身份使用。Dry-run 预览--dry-run在--space-id my_library时预览 2 步解析 my_library → 列出成员其余情况预览 1 步列出成员。对应 DryRun 实现见 shortcuts/wiki/wiki_member_list.go。权限失败提示若当前用户或应用对目标空间/节点没有访问权限飞书统一错误码 131006CLI 会给出稳定的恢复提示——这是资源访问权限而非应用 Scope 授权问题不建议盲目重试或切换身份应请知识库管理员授权或改用有权限的资源见 shortcuts/wiki/wiki_helpers.go。适用前提以上行为均以当前仓库larksuite/cli源码与测试为准。使用前提已安装并完成 lark-cli 登录授权user 或 bot 身份且账号/应用已获得知识库空间的成员可见权限以及wiki:member:retrieve权限点。命令组注册与挂载位于 shortcuts/wiki/shortcuts.go更多知识库命令空间、节点、成员管理等可参考 skills/lark-wiki/references 目录下的配套文档。【免费下载链接】cliThe official Lark/飞书 CLI tool, maintained by the larksuite team — built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200 commands and 20 AI Agent Skills.项目地址: https://gitcode.com/gh_mirrors/cli414/cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考