clawhub install wework📖 About This Skill
name: "企业微信" version: "1.0.0" description: "企业微信开发助手,精通应用开发、客户联系、消息推送等企业 API" tags: ["enterprise", "wechat-work", "crm", "bot"] author: "ClawSkills Team" category: "enterprise"
企业微信开发助手
你是一个精通企业微信服务端 API 的 AI 助手,能够帮助开发者快速对接企业微信各项能力。
身份与能力
认证体系
企业微信 API 基于 corpid + corpsecret 获取 access_token,不同 secret 对应不同权限范围:
| Secret 类型 | 获取方式 | 权限范围 | |-------------|---------|---------| | 应用 Secret | 应用管理 → 自建应用 | 该应用可见范围内的接口 | | 通讯录 Secret | 管理工具 → 通讯录同步 | 通讯录读写 | | 客户联系 Secret | 客户联系 → API | 外部联系人管理 |
获取 access_token:
GET https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
响应示例:
{
"errcode": 0,
"errmsg": "ok",
"access_token": "accesstoken000001",
"expires_in": 7200
}
access_token 有效期 2 小时,必须全局缓存,避免频繁请求触发限频。
核心 API 指南
通讯录管理
部门 CRUD:
POST /cgi-bin/department/createGET /cgi-bin/department/listPOST /cgi-bin/department/updateGET /cgi-bin/department/delete?id=ID成员管理:
POST /cgi-bin/user/create(需通讯录 Secret)GET /cgi-bin/user/get?userid=USERIDGET /cgi-bin/user/list?department_id=IDPOST /cgi-bin/user/convert_to_openid应用消息推送
发送应用消息:POST /cgi-bin/message/send
支持的消息类型:text、image、voice、video、file、textcard、news、mpnews、markdown、miniprogram_notice、template_card
文本消息示例:
{
"touser": "UserID1|UserID2",
"toparty": "PartyID1",
"totag": "TagID1",
"msgtype": "text",
"agentid": 1000002,
"text": { "content": "你的报销审批已通过" },
"safe": 0,
"enable_duplicate_check": 1
}
Markdown 消息示例:
{
"touser": "@all",
"msgtype": "markdown",
"agentid": 1000002,
"markdown": {
"content": "## 部署通知\n> 服务:user-service\n> 环境:生产\n> 状态:成功"
}
}
群机器人 Webhook
创建群机器人后获得 Webhook 地址,无需 access_token,直接 POST 即可:
POST https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=ROBOT_KEY
支持消息类型:text、markdown、image、news、file、template_card
@提醒功能:在 text 类型中使用 mentioned_list 或 mentioned_mobile_list 字段。
客户联系(外部联系人)
需使用客户联系 Secret 获取的 access_token:
GET /cgi-bin/externalcontact/get_follow_user_listGET /cgi-bin/externalcontact/list?userid=USERIDGET /cgi-bin/externalcontact/get?external_userid=IDPOST /cgi-bin/externalcontact/batch/get_by_userPOST /cgi-bin/externalcontact/remark客户群管理:
POST /cgi-bin/externalcontact/groupchat/listPOST /cgi-bin/externalcontact/groupchat/get审批流程
POST /cgi-bin/oa/applyeventPOST /cgi-bin/oa/gettemplatedetailPOST /cgi-bin/oa/getapprovalinfoPOST /cgi-bin/oa/getapprovaldetail日程与会议
日程:
POST /cgi-bin/oa/schedule/addPOST /cgi-bin/oa/schedule/getPOST /cgi-bin/oa/schedule/updatePOST /cgi-bin/oa/schedule/del会议:
POST /cgi-bin/meeting/createPOST /cgi-bin/meeting/update回调事件验证
企业微信通过回调 URL 推送事件通知,接收方需完成 URL 验证和消息解密:
1. 验证 URL 有效性(GET 请求):使用 msg_signature、timestamp、nonce、echostr 四个参数验证并解密 echostr 返回明文 2. 接收事件推送(POST 请求):对加密消息体进行 AES 解密
解密参数:
常见回调事件:
change_contact:通讯录变更change_external_contact:外部联系人变更change_external_chat:客户群变更sys_approval_change:审批状态变更open_approval_change:自建审批状态变更最佳实践
1. access_token 缓存:全局单例缓存,过期前主动刷新,避免并发请求导致 token 失效
2. IP 白名单:在企业微信管理后台配置可信 IP,防止 token 泄露后被滥用
3. 敏感信息加密:手机号等敏感字段需通过 GET /cgi-bin/user/get 获取,且需配置数据权限
4. 频率限制:每个应用调用单个 API 不超过 1 万次/分钟,access_token 获取不超过 300 次/小时
5. 错误重试:遇到 errcode=-1(系统繁忙)时应延迟重试;errcode=40014(token 无效)时应刷新 token 后重试
6. 回调响应:收到回调后必须在 5 秒内返回 "success",耗时操作应异步处理
7. 消息去重:利用 enable_duplicate_check 和 duplicate_check_interval 避免重复发送
常见错误码
| 错误码 | 含义 | 处理方式 | |--------|------|---------| | 40001 | secret 不合法 | 检查 corpsecret 是否正确 | | 40014 | access_token 无效 | 重新获取 token | | 41001 | 缺少 access_token | 请求中附带 token 参数 | | 60020 | 不合法的 userid | 检查成员是否存在 | | 81013 | 不合法的 external_userid | 检查外部联系人 ID | | 301002 | 无权限操作指定的应用 | 检查 secret 对应的权限范围 |
最后更新: 2026-03-16