Skip to content

企微机器人:显示真实姓名 ​

联系人列表里显示的是 wohR_KCgAA7Jg8dwFDgikQt2k0MZE18A 这样一串 ID?这篇文档告诉你怎么把它变成真实姓名。


为什么会显示一串 ID ​

企业微信对智能机器人收到的消息做了发送者匿名化处理:机器人拿到的不是姓名、也不是 userid,而是一串加密后的会话 ID。Halo 只能把它原样显示出来。

要拿到真实姓名,需要在企业微信客户端里额外授权一个「消息」能力——它和机器人自己的连接凭据(Bot ID / Secret)是两回事,授权后会得到一个专用链接,把链接填进 Halo 即可。

这一步是可选的

不配置也完全不影响收发消息、不影响数字人回复,只是联系人显示为 ID。


操作步骤 ​

第一步:在企业微信中授权「消息」能力 ​

  1. 打开企业微信电脑端
  2. 进入 「工作台」→「智能机器人」
  3. 选中你在 Halo 里使用的那个机器人
  4. 进入该机器人的 「可使用权限」(权限)页面
  5. 找到 「消息」 这一项,点击授权
  6. 授权完成后会给出一个链接,点击复制

复制到的链接形如:

https://qyapi.weixin.qq.com/mcp/v2/bot/msg?apikey=xxxxxxxx

这个链接是凭据

链接里的 apikey 等同于密码,拿到的人可以读取该机器人的会话列表。不要发到群里、不要写进文档或代码仓库。

第二步:把链接粘贴进 Halo ​

  1. 打开 Halo,进入 设置 → 消息通道
  2. 展开对应的机器人实例卡片
  3. 找到 「姓名解析 URL」(标注为「可选」)
  4. 粘贴链接,保存

保存后无需重启,下一条进来的消息就会触发解析。


怎么确认生效了 ​

姓名解析 URL 下方会显示当前状态:

状态提示含义
已保存,下一条消息生效(灰色)填好了,还没有新消息来触发
正在解析发送者姓名(绿色)已生效
授权已过期(7 天有效)(琥珀色)需要回企业微信重新授权并重新复制链接
上次请求失败,将自动重试(琥珀色)网络或服务端临时问题,Halo 会自动重试

授权 7 天过期 ​

企业微信的这个授权自 授权时起 7 天有效,过期后需要重新走一遍第一步并重新粘贴链接。

过期时 Halo 会在会话列表上方提示,已经解析过的联系人姓名不会丢失,只是新出现的联系人会继续显示 ID。


能解析什么、不能解析什么 ​

  • ✅ 私聊联系人:显示对方的真实姓名
  • ✅ 群聊会话:显示群的名称
  • ❌ 群里的某个发言人:企业微信不提供这个映射,群内发言者仍是 ID
  • ⚠️ 只覆盖最近约 20 个会话:企业微信一次只返回最近的会话列表。很久没有互动的联系人可能解析不到,等对方再次发消息、进入最近会话后才会被补上

另外,你随时可以在 Halo 的会话列表里手动给某个会话改名(如「前端组」「张三」)。手动改的名字优先级最高,不会被自动解析覆盖。


常见问题 ​

Q:填了链接,联系人还是 ID?

等一条新消息进来再看——解析是在收到消息时触发的。仍然不行就检查状态提示是不是「授权已过期」。

Q:为什么群里 @ 我的同事还是显示 ID?

企业微信只提供会话级别的名称,不提供群成员的身份映射。想知道某人的 userid,可以让他私聊机器人问「我的用户 ID 是什么」,数字人能直接从上下文里读出来。

Q:Bot ID / Secret 已经填了,为什么还要这个?

Bot ID / Secret 是机器人的连接凭据,只负责收发消息;姓名解析是另一项成员授权的能力,两者互不替代。

Q:能不能不授权?

可以。ID 只是显示得不好看,机器人的全部功能都不受影响。


相关文档 ​