Wecom-cli wecomcli-contact
通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。
install
source · Clone the upstream repo
git clone https://github.com/WecomTeam/wecom-cli
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/WecomTeam/wecom-cli "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/wecomcli-contact" ~/.claude/skills/wecomteam-wecom-cli-wecomcli-contact && rm -rf "$T"
manifest:
skills/wecomcli-contact/SKILL.mdsource content
通讯录成员查询技能
是企业微信提供的命令行程序,所有操作通过执行wecom-cli命令完成。wecom-cli
获取当前用户可见范围内的通讯录成员,并在本地按姓名/别名进行筛选匹配。
操作
1. 获取全量通讯录成员
获取当前用户可见范围内的所有企业成员信息:
调用示例:
wecom-cli contact get_userlist '{}'
返回格式:
{ "errcode": 0, "errmsg": "ok", "userlist": [ { "userid": "zhangsan", "name": "张三", "alias": "Sam" }, { "userid": "lisi", "name": "李四", "alias": "" } ] }
返回字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| integer | 返回码, 表示成功 |
| string | 错误信息 |
| array | 用户列表 |
| string | 用户唯一 ID |
| string | 用户姓名 |
| string | 用户别名,可能为空 |
2. 按姓名/别名搜索人员
get_userlist 返回全量成员后,在本地对结果进行筛选匹配:
- 精确匹配:
或name
与关键词完全一致,直接使用alias - 模糊匹配:
或name
包含关键词,返回所有匹配结果alias - 无结果:告知用户未找到对应人员
搜索示例:
用户问:"帮我找一下张三是谁?"
- 调用
获取全量成员get_userlist - 在
中筛选userlist
或name
包含"张三"的成员alias - 返回匹配结果
注意事项
-
返回的是当前用户可见范围内的成员,需经过可见性规则过滤,不一定是全公司所有人员;返回字段仅包含get_userlist
、userid
(姓名)和name
(别名)alias -
⚠️ 超过 10 人时接口将报错:若
返回成员数量超过 10 人,视为异常,应立即停止处理并向用户说明:userlist当前通讯录可见成员数量超过了本技能支持的上限(10 人)。 本技能仅适用于可见范围较小的场景,无法在大范围通讯录中使用。 建议缩小可见范围后重试,或通过其他方式查询目标人员。
-
是用户的唯一标识,在需要传递用户 ID 给其他接口时使用此字段userid -
字段可能为空字符串,搜索时需做空值判断alias -
若搜索结果有多个同名人员,需将所有候选人展示给用户选择,不得自行决定
-
若
不为errcode
,说明接口调用失败,需告知用户错误信息(0
)errmsg
典型工作流
工作流 1:查询人员信息
用户问:"帮我查一下 Sam 是谁?"
wecom-cli contact get_userlist '{}'
获取全量成员列表
- 在结果中筛选
为alias
或Sam
包含name
的成员Sam - 若找到唯一匹配,直接展示结果:
📇 找到成员: - 姓名:张三 - 别名:Sam - 用户ID:zhangsan
- 若找到多个匹配,展示候选列表请用户确认:
🔍 找到多个匹配成员,请确认您要查询的是哪位: 1. 张三(别名:Sam,ID:zhangsan) 2. 张三丰(别名:Sam2,ID:zhangsan2) 请问您要查询的是哪一位?
工作流 2:为其他功能提供 userid 转换
用户问:"帮我发消息给张三"
wecom-cli contact get_userlist '{}'
获取全量成员
- 筛选
为"张三"的成员,确认nameuserid - 将
传递给消息发送接口userid
工作流 3:批量查询多个人员
用户问:"帮我查一下张三和李四分别是谁?"
wecom-cli contact get_userlist '{}'
获取全量成员列表
- 分别筛选"张三"和"李四"的匹配结果
- 汇总后一并展示
注意:只需调用一次
,在本地对结果进行多次筛选,避免重复调用接口。get_userlist
快速参考
接口说明
| 接口 | 用途 | 输入 | 返回 |
|---|---|---|---|
| 获取可见范围内全量通讯录成员 | 无 | 用户列表(userid、name、alias) |
本地筛选策略
| 场景 | 策略 |
|---|---|
| 精确匹配(name 或 alias 完全一致) | 直接使用,无需用户确认 |
| 模糊匹配(name 或 alias 包含关键词),唯一结果 | 直接使用,向用户展示结果 |
| 模糊匹配,多个结果 | 展示候选列表,请用户选择 |
| 无匹配结果 | 告知用户未找到对应人员 |