添加接口调用权限
调用钉钉服务端接口前,需要先添加所需接口的调用权限,应用创建后,系统默认添加身份验证和消息通知接口权限。鼓励应用使用尽可能多的接口,实现跟钉钉核心能力的全面互通。
接口权限是以应用为维度授予的,每个应用的接口权限都是独立存在的,如果多个应用都需要调用同一个接口,那么每个应用都要添加相对应的接口调用权限。
例如:企业内同时拥有A、B两个应用,且应用A已经拥有通讯录权限,此时如果应用B要获取企业通讯录,那么也需要添加通讯录权限,添加方式与应用A一样。
重要
不是所有接口都可以直接开通使用,具体参照接口的使用范围和适用类型,部分接口需要付费或满足特定条件后才可使用。
添加普通接口调用权限
您需要根据要开发的应用,添加需要使用的接口权限。
参考以下操作,添加接口权限:
登录开发者后台。
在应用开发页面,单击目标应用进入应用详情页面。
在应用详情页,单击权限管理,选择需要添加的权限,单击申请权限。
重要
添加通讯录接口权限后,需要配置通讯录授权范围,即通讯录相关接口可以获取哪些部门员工的通讯录信息。开发者在调用通讯录接口时,只能获取到在授权范围内的员工通讯录信息。获取非授权范围内的员工通讯录信息会提示错误。
添加特殊接口调用权限
对于一些非公共的特殊接口,需要提交申请后,才可开通使用。
例如,家校企业下有调用新教育接口的场景,新教育接口申请需要提交审批单,操作流程如下截图。
管理员登录开发者后台。
在应用开发页面,单击目标应用进入应用详情页面。
单击权限管理,选择需要添加的特殊接口,单击申请权限。
填写申请说明,最后单击申请。
说明
- 接口调用权限申请会由对应接口的钉钉小二进行审批,审批一般会在一个工作日内完成,审批通过后状态变为已开通。
- 如果接口申请被拒绝,可在申请栏中找到对应的接口权限,然后将鼠标移至审核未通过上查看拒绝原因。
无权限报错的解决办法
说明
此解决方法目前仅限于调用新版服务端API时适用。
新版服务端API调用无权限时返回的信息如下:
{
"Code": "Forbidden.AccessDenied.AccessTokenPermissionDenied",
"StatusCode": 403,
"Message": "code: 403, 没有调用该接口的权限 request id: 8197EF5F-E4B5-157D-8E03-88C759D33E58",
"Data": "{\"AccessDeniedDetail\":{\"requiredScopes\":[\"Contact.Org.Read\"]},\"Code\":\"Forbidden.AccessDenied.AccessTokenPermissionDenied\",\"HostId\":\"dingtalk-inner.aliyuncs.com\",
\"Message\":\"没有调用该接口的权限\",\"Recommend\":\"https://next.api.aliyun.com/troubleshoot?q=Forbidden.AccessDenied.AccessTokenPermissionDenied\\u0026product=dingtalk\",
\"RequestId\":\"8197EF5F-E4B5-157D-8E03-88C759D33E58\",\"statusCode\":403}",
"Stack": null,
"Description": "\u003cni\u003e",
"AccessDeniedDetail": {
"requiredScopes": [
"Contact.Org.Read"
]
}
}
企业内部应用
企业内部应用调用接口时返回提示“没有调用该接口的权限”,解决步骤:
取出错误信息中AccessDeniedDetail的requiredScopes字段,表示的是当前接口的权限点Code。
在当前应用的权限管理页面,搜索该权限点Code后,申请开通对应接口权限。
第三方企业应用
第三方企业应用调用接口时返回提示“没有调用该接口的权限”,解决步骤:
取出错误信息中AccessDeniedDetail的requiredScopes字段,表示的是当前接口的权限点Code。
在当前应用的权限管理页面,搜索该权限点Code后,申请开通对应接口权限。
该Code作为统一授权套件SDK的rpcScope或fieldScope参数值。