企业微信三方应用开发(五)通讯录转译解决企业微信通讯录接口将不再
企业微信6月30日后起不再返回成员姓名及部门名称,之后都用id代替....苦了我们这些做第三方应用的服务商。
我们在6月份做了通讯录转译,后面一直忙没机会分享,我们B端开发群里(加我微信li570467731拉你入群)做企业微信第三方应用的朋友们也一直有讨论。
一转眼就8月了, 现在分享补上吧。解决不返回姓名和部门名有两个解决方案。
方案一:使用通讯录组件显示人员姓名及部门名
群里大部分人用通讯录组件(https://work.weixin.qq.com/api/doc/90001/90143/91958)做了显示兼容;
通讯录组件优劣:基本是前端各个端(H5,小程序等)自己干,但各个端都要改动兼容,不太需要后端。
通讯录组件限制:必须是在企业微信登录状态下,什么意思呢?就是不管你是在PC浏览器还是H5还是小程序必须是企业微信登录状态(需要openid等信息),这会导致你在其它独立平台无法使用如独立APP独立后台等没有企业微信登录状态时;
因自己选了方案二,方案一具体的还需要大家自己实践或者加群(加我微信li570467731拉你入群),咨询其它已经实现过的群友;
通讯录组件显示api文档及截图如下
截图
方案二:通讯录转译
方案一的通讯录组件的限制,导致我们不能在App及后台(非企业微信登录方式)登录显示使用正确的部门名及人员名称;
所以我们选了方案二通讯录转译
通讯录转译优劣:基本后台(管理后台前后端配合)干,需要通过企业微信登录到后台,再在自己后台生成需要转译的部门人员id文件通过api上传企微,企微转译完成后,我们从企微下载转译完成的文件,再上传到自己服务器匹配更新名称,但转一次成功后,其它端基本不用动
这个好处就是通过后台手动同步一次,其它端不用改,像小程序,H5,app等;
通讯录转译限制:不方便的就是转译后下载的链接需要是企业微信登录态才能下载;文档描述为“通讯录转换成功后的url,需要用户通过oauth2授权登录或者单点登录在用户侧打开”;
具体就是在后台将通讯录的部门id,人员id以文件形式调用api(api较为繁琐有好几步)传到企业微信,然后企业微信会将对应应id转译替换为对应名称并返回一个下载链接,我们再下载下来,然后再上传到我们自己后台(此处企业微信有校验,目前和几个群友讨论尝试过无法自动下载上传),做匹配更新;
中间遇到一个小问题:
问题如下:
https://developers.weixin.qq.com/community/develop/doc/000e220db5cf48fdbb2acdcaa51800
原因如下:
注意,在单点登录的场景(包括有扫码登录,应用安装完成跳转,以及从企业微信Web管理端业务跳转),在指定的redirect_uri的域名,才会有登录用户身份。
比如,扫码登录后跳转到域名A,在域名B下使用组件,是会报错403的。
得用同一个域名,我们解决是做了中间跳转,因为我们后台和redirect_url不是一个域名;
通讯录转译文档链接及截图
https://work.weixin.qq.com/api/doc/90001/90143/91845
截图
下附企业微信接口更改不返回部门名称及人员名称通知链接及截图:
截图
欢迎加我微信(li570467731)拉你进ToB Dev 专注于B端开发经验分享