企业微信开发日记 - 无备案域名的企业应用?
首先还是为了做一个企业微信授权扫码的应用,基于此,我先查阅资料,总结出 企业微信网页应用授权登录
为帆软添加相关应用,帆软同学可以通过这个方案,进行授权登录。
然后,我发现另外一批同学是没有在帆软的企业微信下面的。
如果想要为他们也创建相应的功能,那么需要有一个备案后的域名。
然而,汇才同学是没有这个域名的。导致项目陷入僵局。基于此,我开始找方案。
由于应用分为自建/第三方。那么自建应用需要备案域名,是否第三方不需要呢?第三方是不是只需要自己的备案域名就够了呢?
完全合情合理的猜想。于是,我开始探索第三方应用的开发之路。
个人开发
首页 - 企业微信开发者中心
说明
- 打开官网,创建应用
- 比较重要的是两个,一个是安装回调域名,一个是回调配置
- 安装回调域名是为了能够获取应用的 AuthCode, 从而能够获取访问企业信息的 PermanentCode 和 AccessKey
- 回调配置,则是接受上面 授权通知事件,以及 SuiteKey 的关键逻辑
- Token / EncodingAESKey 则是为了在中间的鉴权和解密的关键配置。
回调配置
回调配置 - 文档 - 企业微信开发者中心
二:如何接收企业微信回调
指令回调
文档中有相对详细的说明,我这里提供一个 指令回调 的案例
这个方法,主要是针对 指令回调 的不同类型 infoType,做了不同的逻辑存储。
从而保证相关的回调信息能够被捕获到。
网页授权
个人应用是不支持网页登录授权的,只支持 oauth 授权
所以参考 构造网页授权链接 - 文档 - 企业微信开发者中心
并设置相关的 ip 白名单
既可以完成 ip 授权。
问题
然而,第三方(包括个人/服务商)开发的应用获取的成员 id,是加密的。见 代开发应用安全性升级 - 接口文档 - 企业微信开发者中心
导致成员 id 完全无法和成员具体的值匹配上。
并且,个人开发应用的权限,只有成员基本数据权限,无法访问 通讯录
所以个人开发的应用,天花板就到这里。
服务商应用
服务商后台
服务商应用,基本的说明和 个人应用 一致。因此就不额外讲述。
讲一下和个人应用的区别
区别
- 调用需要 API 使用权限
- 可以设置网页登录授权,但需要验证后的域名
最重要的是,服务商应用获取的也是 加密 后的 userId 没啥用。
总结
- 给企业微信备案,服务器用两个,或者后台可以根据域名访问不一样的逻辑
给企业微信设置关联主体,但帆软和汇才属于两个公司。
- 使用微信来进行绑定,见 微信扫码登录
- 限制也很多
- 不考虑实名认证,或者通过给授权码的方式,进行授权认证