📄 SKILL.md

← 返回目录


name: wecomcli-lookup-contact description: 通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。 metadata: requires: bins: ["wecom-cli"] cliHelp: "wecom-cli contact --help"

通讯录成员查询技能

wecom-cli 是企业微信提供的命令行程序,所有操作通过执行 wecom-cli 命令完成。

获取当前用户可见范围内的通讯录成员,并在本地按姓名/别名进行筛选匹配。

操作

1. 获取全量通讯录成员

获取当前用户可见范围内的所有企业成员信息:

调用示例:

wecom-cli contact get_userlist '{}'

返回格式:

{
    "errcode": 0,
    "errmsg": "ok",
    "userlist": [
        {
            "userid": "zhangsan",
            "name": "张三",
            "alias": "Sam"
        },
        {
            "userid": "lisi",
            "name": "李四",
            "alias": ""
        }
    ]
}

返回字段说明:

| 字段 | 类型 | 说明 | |------|------|------| | errcode | integer | 返回码,0 表示成功 | | errmsg | string | 错误信息 | | userlist | array | 用户列表 | | userlist[].userid | string | 用户唯一 ID | | userlist[].name | string | 用户姓名 | | userlist[].alias | string | 用户别名,可能为空 |


2. 按姓名/别名搜索人员

get_userlist 返回全量成员后,在本地对结果进行筛选匹配:

- 精确匹配namealias 与关键词完全一致,直接使用

2. 在 userlist 中筛选 namealias 包含"张三"的成员 3. 返回匹配结果


注意事项

- get_userlist 返回的是当前用户可见范围内的成员,需经过可见性规则过滤,不一定是全公司所有人员;返回字段仅包含 useridname(姓名)和 alias(别名)

> 本技能仅适用于可见范围较小的场景,无法在大范围通讯录中使用。 > 建议缩小可见范围后重试,或通过其他方式查询目标人员。

- userid 是用户的唯一标识,在需要传递用户 ID 给其他接口时使用此字段

wecom-cli contact get_userlist '{}'
获取全量成员列表

2. 在结果中筛选 aliasSamname 包含 Sam 的成员 3. 若找到唯一匹配,直接展示结果:

📇 找到成员:
  • 姓名:张三
  • 别名:Sam
  • 用户ID:zhangsan

4. 若找到多个匹配,展示候选列表请用户确认:

🔍 找到多个匹配成员,请确认您要查询的是哪位:

1. 张三(别名:Sam,ID:zhangsan) 2. 张三丰(别名:Sam2,ID:zhangsan2)

请问您要查询的是哪一位?


工作流 2:为其他功能提供 userid 转换

用户问:"帮我发消息给张三"

1.

wecom-cli contact get_userlist '{}'
获取全量成员

2. 筛选 name 为"张三"的成员,确认 userid 3. 将 userid 传递给消息发送接口


工作流 3:批量查询多个人员

用户问:"帮我查一下张三和李四分别是谁?"

1.

wecom-cli contact get_userlist '{}'
获取全量成员列表

2. 分别筛选"张三"和"李四"的匹配结果 3. 汇总后一并展示

注意:只需调用一次 get_userlist,在本地对结果进行多次筛选,避免重复调用接口。


快速参考

接口说明

| 接口 | 用途 | 输入 | 返回 | |------|------|------|------| | get_userlist | 获取可见范围内全量通讯录成员 | 无 | 用户列表(userid、name、alias) |

本地筛选策略

| 场景 | 策略 | |------|------| | 精确匹配(name 或 alias 完全一致) | 直接使用,无需用户确认 | | 模糊匹配(name 或 alias 包含关键词),唯一结果 | 直接使用,向用户展示结果 | | 模糊匹配,多个结果 | 展示候选列表,请用户选择 | | 无匹配结果 | 告知用户未找到对应人员 |