企业微信机器人发送消息报错 40014 无效凭证怎么办

文章导读
企业微信接口返回 40014 错误码表示 access_token 无效或过期,主要出现在调用需要凭证的应用 API 场景。处理重点是重新获取 access_token 并核对企业 ID 与 Secret,注意区分群机器人 Webhook 密钥与 API 访问凭证。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 常见问题
  7. G 参考来源
A A

企业微信接口返回 40014 错误码表示 access_token 无效或过期,主要出现在调用需要凭证的应用 API 场景。处理重点是重新获取 access_token 并核对企业 ID 与 Secret,注意区分群机器人 Webhook 密钥与 API 访问凭证。

先说结论:40014 错误意味着当前使用的 access_token 已失效,必须通过企业 ID 和 Secret 重新调用接口获取新凭证。

  • 先确认:检查调用接口是否需要 access_token,区分 Webhook 密钥与 API 凭证。
  • 先处理:使用最新的企业 ID 和 Secret 调用获取 token 接口,更新本地缓存。
  • 再验证:使用新 token 发送测试消息,确认返回 errcode 为 0。

命令速用版

可通过 curl 命令快速测试获取新的 access_token,替换命令中的企业 ID 和 Secret 参数。

curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=YOUR_CORPID&corpsecret=YOUR_SECRET"

返回 JSON 中包含 access_token 字段即为获取成功,若返回 40013 则说明 Secret 无效。

企业微信机器人发送消息报错 40014 无效凭证怎么办

为什么会这样

40014 错误的根本原因是 access_token 过期或生成凭证的企业信息不匹配。企业微信的 access_token 有效期为 7200 秒,超时后必须重新获取,且频繁获取可能触发频率限制。

此外,若修改了企业微信后台的 Secret 或变更了可信 IP 白名单,旧 token 会立即失效。部分开发者误将群机器人 Webhook 密钥当作 access_token 使用,也会因接口鉴权方式不同导致报错。

分步处理

按照以下步骤排查并修复凭证问题,确保 API 调用链路正常。

企业微信机器人发送消息报错 40014 无效凭证怎么办
  1. 确认接口类型:检查代码调用的是/cgi-bin/message/send(需要 token)还是/cgi-bin/webhook/send(需要 key)。40014 仅出现在需要 token 的接口。
  2. 重新获取凭证:使用企业 ID 和应用的 Secret 调用 gettoken 接口。确保 Secret 是可见状态,若隐藏需在后台重置。
  3. 检查 IP 白名单:登录企业微信管理后台,确认调用接口的服务器 IP 已添加至应用可信 IP 列表。
  4. 更新缓存逻辑:代码中应实现 token 自动刷新机制,避免硬编码固定 token。

怎么验证是否生效

使用新获取的 access_token 调用发送消息接口,观察返回数据包。

curl "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=NEW_TOKEN" -d '{"touser":"UserID","msgtype":"text","agentid":1,"text":{"content":"test"}}'

若返回{"errcode":0,"errmsg":"ok"}则修复成功。若仍报 40014,检查 token 复制是否完整,有无多余空格或换行。

企业微信机器人发送消息报错 40014 无效凭证怎么办

常见坑

  • Token 缓存过久:本地缓存时间应略小于 7200 秒,建议设置为 7000 秒刷新,避免边界时间失效。
  • 多应用混淆:不同应用拥有独立的 Secret 和 token,不可混用自建应用的 token 调用第三方应用接口。
  • Secret 泄露重置:若 Secret 曾泄露并重置,旧 token 会永久失效,必须更新代码配置。
  • IP 白名单限制:未在后台配置可信 IP 时,部分接口调用会直接失败或 token 无效。

常见问题

群机器人 Webhook 会报 40014 吗?

通常不会,群机器人 Webhook 使用 key 参数鉴权,不涉及 access_token。若报 40014 说明你调用的是应用消息 API 而非 Webhook 接口。

access_token 有效期是多久?

官方文档规定 access_token 有效期为 7200 秒(2 小时),过期后接口会返回 40014 错误。

为什么重新获取 token 后还是报错?

可能是企业 ID 或 Secret 填写错误,或者服务器 IP 不在可信白名单内,请核对管理后台配置。

参考来源

  • 企业微信官方文档 - 获取 access_token:https://developer.work.weixin.qq.com/document/path/91039
  • 企业微信官方文档 - 全局错误码说明:https://developer.work.weixin.qq.com/document/path/90000