2、企业微信后台配置:注册企业微信、创建自建应用、配置应用权限、设置可信域名、配置IP白名单
好,咱们正式开始动手了。这一章,我会带你走一遍企业微信后台的完整配置流程。说白了,这是整个OA集成的「地基」。地基没打好,后面代码写得再漂亮,也跑不起来。
我个人习惯,在开始任何集成项目之前,先把后台配置项一个一个过一遍,截图保存。为什么?因为有些配置一旦保存,修改起来很麻烦。我曾经在一个项目里,因为IP白名单漏配了一个网段,导致生产环境回调失败,排查了整整一个下午。嗯,这种坑,咱们尽量别踩。
2.1 注册企业微信
这一步其实没什么技术含量,但有个细节很多人会忽略。
打开企业微信官网,点击「注册」。你需要一个企业邮箱或者营业执照。如果你只是做开发测试,用个人身份证也能注册一个「企业」,只不过功能上会有些限制。
这里我建议:尽量用真实的公司信息注册。因为后面涉及到「可信域名」的验证,如果企业信息不完整,可能会被拦截。
2.2 创建自建应用
登录管理后台,找到「应用管理」→「自建」→「创建应用」。你会看到一个表单,需要填写应用名称、应用描述、应用图标。
这里有个坑:应用名称一旦创建,不能修改。我见过有人把应用名写成「测试应用123」,结果上线后改不了,只能重新建一个。你想想看,这多尴尬。
创建完成后,你会得到一个 AgentId 和 Secret。这两个东西,是后续所有API调用的凭证。请务必妥善保管,不要提交到代码仓库里。
// 伪代码示例:获取access_token
// 你需要用到:corpid(企业ID)、secret(应用Secret)
GET https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
2.3 配置应用权限
创建完应用,它只是一个空壳。你需要告诉企业微信:「我这个应用,能看谁的信息?能发什么消息?能操作哪些数据?」
在应用详情页,找到「权限管理」。你会看到一长串权限列表,比如:
- 读取通讯录
- 发送应用消息
- 管理打卡数据
- 管理审批流程
我的建议是:按需申请,最小权限原则。不要一股脑全勾上。为什么?因为企业微信的权限审核越来越严,你申请了用不到的权限,审核可能会被驳回。
举个例子,如果你只需要给用户发通知,那就只勾「发送应用消息」。如果你需要读取用户的部门信息,再勾「读取通讯录」。别贪多。
| 权限名称 | 用途 | 建议 |
|---|---|---|
| 读取通讯录 | 获取用户姓名、部门、手机号 | OA同步必备 |
| 发送应用消息 | 向用户推送通知 | 几乎必选 |
| 管理审批流程 | 创建/查询审批单 | 按需开启 |
| 管理打卡数据 | 读取考勤记录 | 按需开启 |
2.4 设置可信域名
这是整个配置里最容易出问题的一步。说白了,企业微信要求:你的应用只能跟「可信域名」下的服务器通信。这是安全机制,但也确实让人头疼。
在应用详情页,找到「开发接口」→「可信域名」。你需要填写一个域名,比如 oa.yourcompany.com。
然后,你需要下载一个验证文件(通常是 WW_verify_xxxxx.txt),放到该域名的根目录下。企业微信会去访问 https://oa.yourcompany.com/WW_verify_xxxxx.txt,如果能读到,就算验证通过。
我曾经遇到一个情况:验证文件放上去了,但服务器配置了HTTPS强制跳转,结果企业微信访问的是HTTP,跳转后变成了HTTPS,但验证逻辑不认跳转。折腾了半天,最后在Nginx里加了一条规则才解决。
# Nginx 配置示例:确保验证文件不走重定向
location = /WW_verify_xxxxx.txt {
root /var/www/html;
try_files $uri =404;
}
2.5 配置IP白名单
最后一步,设置IP白名单。这个功能的作用是:只有白名单里的IP,才能调用企业微信的API。
在管理后台,找到「我的企业」→「安全与管理」→「IP白名单」。把你的服务器公网IP加进去。如果有多个服务器,或者用了云负载均衡,记得把所有的出口IP都加上。
这里有个容易忽略的点:如果你用了CDN或者API网关,回调请求的源IP可能是网关的IP,而不是你的服务器IP。你需要确认一下,到底哪个IP会被企业微信看到。
60020 错误码。这个错误码的意思是「请求来源IP不在白名单内」。排查方法很简单:去后台看看白名单列表,确认IP是否正确。
嗯,到这里,企业微信后台的配置就完成了。你可能会觉得步骤有点多,但相信我,每一步都有它的道理。配置完成后,你可以用 curl 简单测试一下:
curl -X GET "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=你的企业ID&corpsecret=你的应用Secret"
如果返回了 access_token,恭喜你,配置成功了。如果返回了错误码,别慌,对照着错误码去排查,大概率是IP白名单或者Secret的问题。
下一章,我们会开始写代码,真正把OA系统和微信打通。到时候你会发现,今天的配置工作,每一分钟都没有白费。