最近公司项目需要接入企业微信,所以体验了一把企业微信的对接流程,把对接过程中遇到的问题总结一下。
前情提要
对接之前已经有了基于微信公众号的 H5 应用。需要将 H5 应用接入企业微信(这里应用需要提供给其它企业使用,所以先申请成为了服务商)。
对接人员需要有企业管理员权限。
对接流程如下
准备工作
带公网 IP 服务器一台。如果没有则可以选择使用内网穿透工具进行本地调试。这里博主就是先在本地做的调试。
开发人员需要成为企业管理员
企业微信需要认证(可通过认证过的公众号进行快捷认证)
申请成为服务商(如有需要)
网页应用创建
进入服务商后台创建应用
应用类型:
普通应用--企业OA、生产流程。有活跃度会被推荐。
通讯录应用--对企业的通讯录拥有根部门的读写权限。一家企业只能授权一个通讯录应用。
读取手机号需要创建通讯录应用。如果你的应用需要获取用户敏感信息的话,貌似只能选择通讯录类型的应用(坑点)。
网页应用开发信息配置
配置内容
使用配置
应用主页:用户从企业微信工作台进入应用时会直接跳转到主页URL
可信域名:仅支持可信域名内的应用调用OAuth2授权、JSSDK等
安装完成回调域名:用户安装成功后可指定跳转至该域名的链接
业务设置URL:授权企业的管理员可从企业微信后台的应用详情页免登录直接跳转该链接进行应用配置
回调配置
数据回调URL:用于接收托管企业微信应用的用户消息
指令回调URL:系统将会把此应用的授权变更事件以及ticket参数推送给此URL
Token:用于生成签名校验回调请求的合法性
EncodingAESKey:回调消息加解密参数,是AES密钥的Base64编码,用于解密回调消息内容对应的密文
配置流程
1.可信域名验证。下载验证文件并上传至站点根目录。
2.数据回调与指令回调 url 有效性验证(需要后端原样返回解密后消息)
3.刷新ticket测试
在发生授权、通讯录变更、ticket变化等事件时,企业微信服务器会向应用的“指令回调URL”推送相应的事件消息。
点击按钮来手动推送suite_ticket。
4.获取第三方应用凭证
根据 suiteticket 获取获取第三方应用凭证 suite_access_token
网页应用安装测试
服务商可自行授权测试该应用
每个应用目前仅允许10个不同企业微信授权测试
用于测试授权的企业微信,不能再进行正式应用的授权
1.获取临时授权码auth_code(有效期10分钟)
点击安装测试进行授权,触发企业微信后台会推送授权成功通知
2.获取永久授权码(permanent_code) 使用临时授权码换取授权方的永久授权码
应用登录功能接入
1.构造第三方oauth2链接
构造如下的链接来获取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
注:scope 可使用 snsapi_userinfo 。snsapi_privateinfo 并不能获取成员的手机,邮箱(坑点)。
可以参考下图客服的回答。
2.使用 code 换取企业成员 userid
使用第三方应用的 suite_access_token 及 code 换取企业成员信息
3.使用企业的永久授权码获取企业 access_token
4.使用企业成员 userid 获取成员信息中的手机号
在通讯录同步助手中此接口可以读取企业通讯录的所有成员信息,而自建应用可以读取该应用设置的可见范围内的成员信息。
5.利用手机号(或者其它信息)做登录
应用审核上线
已认证企业微信的服务商,可进入应用管理—点击提交上线—勾选应用—提交上线。
企业微信团队会在3个工作日内完成审核,审核结果会通过"企业微信团队"通知服务商管理员。
然而,你想的太简单了小盆友。。
可能是运气不好吧,碰上企业微信产品内部策略调整。无法上线。
客服对此的解释:
对接感受
1.企业微信的文档部分信息与实际接口请求返回有出入,文档信息有一定滞后性 2.客服沟通不便,社区内没有解决问题,顺着文档的联系方式找到客服,但是可能需要经历机器人客服->人工客服->技术客服->合作伙伴支持客服->合作伙伴产品客服->腾讯内部其它支持人员。
一般到技术客服那一步就可以解决问题了,但是也存在始终无法解决的情况(需要你更换实现方案)。
这里只是为了一个登录功能却要前后请求9个接口,成本有些高啊。
参考资料
服务商后台:https://open.work.weixin.qq.com/wwopen/developer
创建网页应用:https://work.weixin.qq.com/api/doc/90001/90142/90595#%E5%88%9B%E5%BB%BA%E7%BD%91%E9%A1%B5%E5%BA%94%E7%94%A8
url 有效性验证:https://work.weixin.qq.com/api/doc/10514#%E9%AA%8C%E8%AF%81URL%E6%9C%89%E6%95%88%E6%80%A7
推送suite_ticket:https://work.weixin.qq.com/api/doc/10982#%E6%8E%A8%E9%80%81suite_ticket
获取第三方应用凭证:https://open.work.weixin.qq.com/api/doc/10975#%E8%8E%B7%E5%8F%96%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E5%87%AD%E8%AF%81
授权成功通知:https://work.weixin.qq.com/api/doc/10982#%E6%8E%88%E6%9D%83%E6%88%90%E5%8A%9F%E9%80%9A%E7%9F%A5
换取授权方的永久授权码:https://work.weixin.qq.com/api/doc/10975#%E8%8E%B7%E5%8F%96%E4%BC%81%E4%B8%9A%E6%B0%B8%E4%B9%85%E6%8E%88%E6%9D%83%E7%A0%81
构造第三方oauth2链接:https://open.work.weixin.qq.com/api/doc/10975#%E6%9E%84%E9%80%A0%E7%AC%AC%E4%B8%89%E6%96%B9oauth2%E9%93%BE%E6%8E%A5
code换取企业成员信息:https://open.work.weixin.qq.com/api/doc/10975#%E7%AC%AC%E4%B8%89%E6%96%B9%E6%A0%B9%E6%8D%AEcode%E8%8E%B7%E5%8F%96%E4%BC%81%E4%B8%9A%E6%88%90%E5%91%98%E4%BF%A1%E6%81%AF
使用企业的永久授权码获取企业 access_token:https://work.weixin.qq.com/api/doc/10975#%E8%8E%B7%E5%8F%96%E4%BC%81%E4%B8%9Aaccess_token
获取通讯录成员信息:https://work.weixin.qq.com/api/doc/90001/90143/90332
企业微信交流专区:https://developers.weixin.qq.com/community/enterprisewechat
微信开发者工具提示未绑定企业号开发者?
小程序云开发新能力来啦:支持公众号网页开发与环境共享
vue项目:基于网页授权的微信扫码登录Demo
koa框架实现微信公众号回复用户小程序卡片
微信PC网页扫码登录和公众号网页授权登录的比较
由于公众号推送规则更改,请多多 分享 、 点赞 和 “在看” ,以及时获取极客之路的最新动态。
点击在看让更多人发现精彩