企业微信内部机器人与外部联系人消息接口选型对比

文章导读
企业微信内部机器人适用于向企业内部成员发送通知,外部联系人接口适用于向微信个人用户或外部企业成员发送服务消息。选型错误会导致接口无权限调用或触发合规封禁,核心区别在于消息接收者是否为企业通讯录内成员。
📋 目录
  1. 快速处理思路
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

企业微信内部机器人适用于向企业内部成员发送通知,外部联系人接口适用于向微信个人用户或外部企业成员发送服务消息。选型错误会导致接口无权限调用或触发合规封禁,核心区别在于消息接收者是否为企业通讯录内成员。

先说结论:内部员工通知选内部应用接口,客户触达选外部联系人接口,严禁混用。

  • 适合:内部运维报警、审批通知使用内部机器人;客户服务、营销触达使用外部联系人接口。
  • 重点看:确认接收者 UserID 是否存在于企业通讯录,外部用户必须通过「客户联系」功能添加。
  • 别忽略:外部接口有严格的频率限制和投诉机制,违规发送营销内容可能导致应用被停用。

快速处理思路

接口选型不需要执行命令行,而是根据业务场景匹配权限域。先确认消息接收者身份,再检查应用类型,最后调用对应 API 地址。

1. 接收者是内部员工:使用自建应用,调用消息发送接口。

2. 接收者是微信个人用户:使用客户联系应用,调用外部联系人消息接口。

3. 接收者是外部企业成员:使用互联企业应用,调用互联企业消息接口。

为什么会这样

企业微信将内部通讯与外部通讯做了严格的权限隔离,目的是保护用户隐私和防止骚扰。内部接口默认信任企业内网环境,外部接口则默认处于公开网络环境,需要更高的合规校验。

内部机器人基于企业通讯录 UserID 寻址,外部联系人接口基于外部微信 OpenID 或外部 UserID 寻址。两者底层账户体系不通,内部应用无法直接获取外部微信用户的消息发送权限,除非该用户已被添加为企业客户的「外部联系人」。

分步处理

按照以下步骤确认接口选型并完成配置,每一步都需要在管理后台验证状态。

第一步:确认接收者身份

检查消息接收者是否在企业通讯录中。如果在通讯录中,记录其 UserID;如果是微信个人用户,确认是否已通过「客户联系」添加为好友。

第二步:检查应用类型

企业微信内部机器人与外部联系人消息接口选型对比

登录企业微信管理后台,进入「应用管理」。内部通知选择「自建应用」,客户消息选择具备「客户联系」权限的应用。未开通客户联系权限的应用调用外部接口会返回权限错误。

第三步:配置 API 调用

内部消息调用 cgi-bin/message/send 接口,外部消息调用 cgi-bin/externalcontact/message/send 接口。确保 Access Token 的获取范围与应用类型匹配,内部应用 Token 不能用于外部接口。

第四步:设置回调与安全

在应用配置页设置可信域名和 IP 白名单。外部接口额外需要配置客服账号或群聊场景,确保消息发送者身份合法,避免被判定为异常营销。

怎么验证是否生效

通过接口返回码和实际接收情况判断配置是否正确,不要仅依赖本地日志。

1. 检查接口返回 JSON 中的 errcode 字段,值为 0 表示发送请求成功。

2. 内部消息查看企业微信客户端是否收到应用通知,外部消息查看微信客户端是否收到服务通知。

3. 监控管理后台的接口调用频次统计,确认没有触发频率限制报错。

4. 若返回 6002060028 等权限错误,说明应用类型与接口不匹配,需重新检查应用权限配置。

企业微信内部机器人与外部联系人消息接口选型对比

常见坑

以下场景容易导致接口调用失败或账号风险,开发前需逐一排查。

权限域混淆:使用内部应用 Token 调用外部联系人接口,必然返回无权限错误。两者 Token 不通用,需分别获取。

频率限制触发:外部联系人接口有严格的发送频率限制,短时间内向同一用户发送多条消息会被拦截。公开资料中没有看到可靠的量化数据,具体限制以官方后台提示为准。

用户未添加:向未添加为企业外部联系人的微信用户发送消息会失败。必须先完成好友添加动作,建立关系链后才能发消息。

内容合规风险:外部接口发送营销类内容容易被用户投诉,一旦投诉率过高,应用接口权限会被回收。内部接口相对宽松,但也禁止发送违规内容。

常见问题

内部机器人能直接发消息给微信个人用户吗?

不能,内部机器人只能发送给企业通讯录内的成员。若需发送给微信个人用户,必须使用具备客户联系权限的应用,且用户需先添加为企业外部联系人。

外部联系人接口发送失败常见原因是什么?

常见原因是用户未添加好友、应用未开通客户联系权限或触发频率限制。需检查接口返回的 errmsg 具体提示,确认用户关系状态和应用权限配置。

两个接口的 Access Token 可以混用吗?

不可以,内部应用和外部联系人应用属于不同的权限域。混用 Token 会导致接口返回权限校验失败,必须分别为不同应用获取对应的 Token。

参考来源

1. 企业微信开发者文档 - 消息发送接口

2. 企业微信开发者文档 - 客户联系接口说明

3. 企业微信管理后台 - 应用权限配置页面