PicoBot/skills/lark-wiki/references/lark-wiki-member-add.md
ooodc a7883dbed9 refactor(todo): 重构待办事项管理逻辑及更新状态规则
- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段
- 强制每个任务都必须有唯一 id,且由用户负责生成
- 修改合并模式逻辑,merge=true 下保留未提及的旧任务
- 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress)
- 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled
- 优化状态转换校验,允许特定状态间合法切换
- 简化任务变更消息,移除详细的新增/更新/移除统计
- 更新文档和示例,明确 id 必须由用户生成和使用
- 修复和补充测试,增强状态转换和合并模式验证
- 调整任务时间戳生成逻辑,统一使用当前时间及索引
- 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
2026-06-13 09:22:33 +08:00

3.5 KiB

lark-wiki +member-add

Add a member to a wiki space. OpenAPI: POST /open-apis/wiki/v2/spaces/:space_id/members. Shortcut over the raw wiki members create — adds enum hints, optional --need-notification, my_library resolution, and a flattened single-member output envelope.

The underlying members.create API is flagged danger: true in the schema browser, but adding a member is not confirmation-gated (no --yes). To revert, call +member-remove with the same (member_id, member_type, member_role) tuple.

Usage

# Add a user as a regular member
lark-cli wiki +member-add \
  --space-id <space_id> \
  --member-id <open_id|email|user_id|app_id|...> \
  --member-type <openid|email|userid|unionid|openchat|opendepartmentid|appid> \
  --member-role <admin|member> \
  [--need-notification] \
  [--as user|bot]

# Personal library (resolves my_library to the per-user real space first)
lark-cli wiki +member-add \
  --space-id my_library \
  --member-id ou_xxx --member-type openid --member-role member \
  --as user

# Preview the call chain without writing
lark-cli wiki +member-add \
  --space-id <space_id> --member-id <id> --member-type openid --member-role admin \
  --dry-run

Flags

Flag Type Required Default Description
--space-id string Yes Wiki space ID; use my_library for the personal document library (user only)
--member-id string Yes Member ID; interpretation is decided by --member-type
--member-type enum Yes openchat / userid / email / opendepartmentid / openid / unionid / appid
--member-role enum Yes admin (full space administration) / member (collaborator)
--need-notification bool No unset Send an in-app notification after the grant. Omitting the flag sends no need_notification query at all — passing --need-notification=false is the explicit opt-out
--as enum No auto Identity user/bot; wiki is user-centric → pass --as user

Output

{
  "space_id": "7160145948494381236",
  "member_id": "ou_449b53ad6aee526f7ed311b216aabcef",
  "member_type": "openid",
  "member_role": "admin",
  "type": "user"
}

type is a read-only enum (user / chat / department) the server attaches; absent when the API omits it.

Notes

  • Bot + my_library is rejected upfrontmy_library is a per-user alias with no meaning for a tenant token. Pass an explicit --space-id when --as bot.
  • Bot + opendepartmentid is a known unsupported path on the backend. The CLI does not pre-block it (the API may evolve), but the call will fail. Use --as user for department adds.
  • App member uses --member-type=appid. The corresponding --member-id is the app ID, commonly formatted as cli_xxx.
  • Resolve --member-id before calling: lark-cli contact +search-user for users, lark-cli im +chat-search for groups, lark-cli api POST /open-apis/contact/v3/departments/search for departments. Do not call +member-add first and reverse-engineer the type from the error.
  • The role switch (adminmember) is not a single update — call +member-remove for the old role first, then +member-add with the new one.
  • --dry-run previews 2 steps when --space-id my_library (resolve → add), 1 step otherwise.

Required Scope

wiki:member:create