企业号中通过API请求通讯录时提⽰管理员权限不⾜,
(userdepartmentage。。。
最*公司*台在通过API读取企业通讯录时,⼀直提醒"管理员权限不⾜,(user/department/agent)⽆权限";因为这个应⽤开发好⽤了好⼏年了,⼀直很稳定,搞不清问题在哪,百度了⼀下,⼜看了看API⽂档,最终解决了,遇到这个问题,应该从三点查看。
⼀、开启通讯录API编辑权限
这也是⽹上最多的解决⽅案了,凡是从企业号转到企业的,通讯录权限⼀律是“API只读通讯录”,所以你调⽤时不能新建,不能删除就很正常了,我们只需要开启“API编辑通讯录”就可以了。
⼆、使⽤通讯录管理secret
以前是企业号时,我们都是⽤的应⽤secret来管理的通讯录,但是升级到企业后,需要通过通读录管理secret来管理通讯录了,不然只能查看,不能修改新增删除,这个需要仔细看⼀下API⽂档了。企业号申请
原⽂如下:
通讯录同步相关接⼝,可以对部门、成员、标签等通讯录信息进⾏查询、添加、修改、删除等操作。
开始开发
使⽤通讯录管理接⼝,原则上需要使⽤通讯录管理secret,也可以使⽤应⽤secret。
但是使⽤应⽤secret只能进⾏“查询”、“邀请”等⾮写操作,⽽且只能操作应⽤可见范围内的通讯录。
三、修改获取token的secret
以上两步都操作好了以后,以为没问题了,结果还是不⾏,后来才发现应⽤中代码有问题,因为使⽤了token缓存⽅案,数据库中缓存的都是应⽤的token,每次都是直接调⽤的,相当于没有获取到通讯录的token,需要简单修改下代码,更改成可以获取通讯录的token,然后就⼀切正常了。