企业微信 API 申请与接入指南
在企业微信中,调用 API 并非直接“申请”一个通用的钥匙,而是通过创建自建应用来获取专属的身份凭证(Secret)。每个应用拥有独立的权限范围,需根据业务需求配置。
1. 核心概念
在企业微信中,调用 API 并非直接“申请”一个通用的钥匙,而是通过创建自建应用来获取专属的身份凭证(Secret)。每个应用拥有独立的权限范围,需根据业务需求配置。
2. 前置准备
- 管理员权限:你需要是企业微信的管理员或具有应用管理权限的成员。
- **企业 ID (CorpID)**:企业的唯一标识,全局通用。
3. 详细操作步骤
第一步:获取企业 ID (CorpID)
- 登录 企业微信管理后台。
- 点击左侧菜单 **【我的企业】**。
- 在页面底部找到 **“企业ID”**,点击复制并保存。
第二步:创建自建应用
- 点击左侧菜单 **【应用管理】 > 【应用】 > 【创建应用】**。
- 填写应用信息:
- 应用名称:例如“AI客服助手”或“客户数据同步”。
- 应用头像:上传图标。
- 可见范围:选择哪些成员可以使用该应用(通常选全员或特定部门)。
- 点击 **【创建应用】** 按钮。
第三步:获取应用 Secret (CorpSecret)
- 创建成功后,进入该应用的详情页。
- 找到 **“AgentId” 和 “Secret”** 栏目。
- 点击 Secret 旁边的 **“查看” 或 “重新获取”**。
- 扫码验证后,系统将显示一串字符,即为
CorpSecret。⚠️ 重要提示:Secret 只会显示一次,请务必立即复制并妥善保存。如果丢失,只能重置,重置后旧 Secret 将失效。
第四步:配置可信 IP (必做)
为了安全,企业微信要求调用 API 的服务器 IP 必须在白名单内。
- 在应用详情页,找到 **“企业可信IP”** 配置项。
- 点击 **“配置”**。
- 输入你服务器出口的公网 IP 地址(如果是本地测试,可查询本机公网 IP)。
- 点击确定保存。
❌ 如果不配置可信 IP,调用接口时会返回错误码
60020(not allow to access from your ip)。
第五步:配置接口权限
不同 API 需要不同的权限,需在对应模块中授权该应用。
- 示例:获取客户列表
- 进入 **【客户与上下游】 > 【客户联系】**。
- 找到 **“可调用的应用” 或 “权限配置”**。
- 将刚才创建的应用添加进去。
- 示例:会话存档
- 进入 **【管理工具】 > 【会话存档】**。
- 开启功能并授权应用。
4. 接口调用流程
获取到 CorpID 和 Secret 后,调用 API 的标准流程如下:
1. 获取 Access Token
所有接口调用都需要先获取 access_token。
- 请求 URL:
text GET https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET - 参数:
corpid: 企业 IDcorpsecret: 应用的 Secret
- 返回:
json { "errcode": 0, "errmsg": "ok", "access_token": "ACCESS_TOKEN_STRING", "expires_in": 7200 } - 注意:
access_token有效期为 2 小时(7200秒),建议服务端缓存,不要每次请求都重新获取。
2. 调用业务接口
使用获取到的 access_token 调用具体业务接口。
- 示例:获取外部联系人列表
text GET https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?access_token=ACCESS_TOKEN&userid=USERID
5. 常见问题排查
表格
| 错误码 | 含义 | 解决方案 | | :----- | :------------------------------- | :------------------------------------- | | 40014 | invalid access_token | Token 过期或无效,请重新获取 | | 60020 | not allow to access from your ip | 未配置可信 IP 或 IP 填写错误 | | 48002 | no api permission | 应用未在对应模块(如客户联系)中授权 | | 40001 | invalid credential | Secret 错误或已重置,请检查最新 Secret |
6. 最佳实践建议
- 安全性:严禁将
CorpSecret硬编码在前端代码或公开仓库中。 - Token 缓存:使用 Redis 或内存缓存存储
access_token,避免频繁请求导致限流。 - 多应用隔离:建议为不同业务场景(如 CRM、OA、AI 机器人)创建不同的应用,以便精细化控制权限和审计日志。