钉钉如何获取通讯录接口权限范围?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
调用通讯录相关接口前,需要添加通讯录接口权限,可通过当前接口获取通讯录权限范围。
如下图所示,当前应用的access_token只具备管理部门A的通讯录权限。开发者可以先调用本接口查看应用的通讯录授权范围。
开发者在调用通讯录接口时,只能获取到在授权范围内的员工通讯录信息,获取非授权范围内的员工通讯录信息会提示获取部门/员工不在授权范围内。
请求示例(HTTP)
GET https://oapi.dingtalk.com/auth/scopes?access_token=ACCESS_TOKEN
请求示例(JAVA SDK)
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/auth/scopes");
OapiAuthScopesRequest req = new OapiAuthScopesRequest();
req.setHttpMethod("GET");
OapiAuthScopesResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
返回示例
{
"errcode":0,
"condition_field":[],
"auth_user_field":[
"jobnumber",
"isLeader",
"name",
"position",
"isAdmin",
"avatar",
"department",
"userid",
"deviceId",
"isHide"
],
"auth_org_scopes":{
"authed_user":[],
"authed_dept":[
1
]
},
"errmsg":"ok"
}
钉钉通讯录接口存在严格的访问权限控制:
部门成员列表:只有该部门的管理员才可查看该部门的成员列表
部门成员详情:只有相关部门的成员可查看其他成员的详情
企业成员列表:只有企业管理员或授权账号才可查看全公司成员列表
角色成员列表:只有相关角色负责人可查看该角色下的成员列表
标签成员列表:只有相关标签负责人可查看该标签下的成员列表
调用通讯录相关接口前,需要添加通讯录接口权限,可通过调用 "获取通讯录权限范围" 接口获取通讯录权限范围。该接口在旧版企业内部应用和第三方企业应用中都支持,但在第三方个人应用中不支持。
此回答整理自钉群“钉钉开发者社区(互助群)”