企业微信三方应用开发(五)通讯录转译解决企业微信通讯录接口将不再

2020-08-06  本文已影响0人  企业服务开发_李月喜

        企业微信6月30日后起不再返回成员姓名及部门名称,之后都用id代替....苦了我们这些做第三方应用的服务商。

        我们在6月份做了通讯录转译,后面一直忙没机会分享,我们B端开发群里(加我微信li570467731拉你入群)做企业微信第三方应用的朋友们也一直有讨论。

        一转眼就8月了, 现在分享补上吧。解决不返回姓名和部门名有两个解决方案。

方案一:使用通讯录组件显示人员姓名及部门名

        群里大部分人用通讯录组件(https://work.weixin.qq.com/api/doc/90001/90143/91958)做了显示兼容;

        通讯录组件优劣:基本是前端各个端(H5,小程序等)自己干,但各个端都要改动兼容,不太需要后端。

        通讯录组件限制:必须是在企业微信登录状态下,什么意思呢?就是不管你是在PC浏览器还是H5还是小程序必须是企业微信登录状态(需要openid等信息),这会导致你在其它独立平台无法使用如独立APP独立后台等没有企业微信登录状态时;

        因自己选了方案二,方案一具体的还需要大家自己实践或者加群(加我微信li570467731拉你入群),咨询其它已经实现过的群友;

通讯录组件显示api文档及截图如下

https://open.work.weixin.qq.com/api/docNews?id=20198&notreplace=true&from=groupmessage&isappinstalled=0

截图

方案二:通讯录转译

        方案一的通讯录组件的限制,导致我们不能在App及后台(非企业微信登录方式)登录显示使用正确的部门名及人员名称;

        所以我们选了方案二通讯录转译

        通讯录转译优劣:基本后台(管理后台前后端配合)干,需要通过企业微信登录到后台,再在自己后台生成需要转译的部门人员id文件通过api上传企微,企微转译完成后,我们从企微下载转译完成的文件,再上传到自己服务器匹配更新名称,但转一次成功后,其它端基本不用动

        这个好处就是通过后台手动同步一次,其它端不用改,像小程序,H5,app等;

        通讯录转译限制:不方便的就是转译后下载的链接需要是企业微信登录态才能下载;文档描述为“通讯录转换成功后的url,需要用户通过oauth2授权登录或者单点登录在用户侧打开”;

        具体就是在后台将通讯录的部门id,人员id以文件形式调用api(api较为繁琐有好几步)传到企业微信,然后企业微信会将对应应id转译替换为对应名称并返回一个下载链接,我们再下载下来,然后再上传到我们自己后台(此处企业微信有校验,目前和几个群友讨论尝试过无法自动下载上传),做匹配更新;

中间遇到一个小问题:

问题如下:

https://developers.weixin.qq.com/community/develop/doc/000e220db5cf48fdbb2acdcaa51800

原因如下:

https://work.weixin.qq.com/api/doc/90001/90148/92607#%E9%A1%B5%E9%9D%A2%E8%AF%B7%E6%B1%82%E6%95%B0%E6%8D%AE%E6%8A%A5%E9%94%99403

注意,在单点登录的场景(包括有扫码登录,应用安装完成跳转,以及从企业微信Web管理端业务跳转),在指定的redirect_uri的域名,才会有登录用户身份。

比如,扫码登录后跳转到域名A,在域名B下使用组件,是会报错403的。

得用同一个域名,我们解决是做了中间跳转,因为我们后台和redirect_url不是一个域名;

通讯录转译文档链接及截图

https://work.weixin.qq.com/api/doc/90001/90143/91845

截图

下附企业微信接口更改不返回部门名称及人员名称通知链接及截图:

https://open.work.weixin.qq.com/api/docNews?id=20198&notreplace=true&from=groupmessage&isappinstalled=0

截图

欢迎加我微信(li570467731)拉你进ToB Dev 专注于B端开发经验分享

上一篇下一篇

猜你喜欢

热点阅读