开发者社区> 问答> 正文

钉钉调用接口提示未授权

调用钉钉接口:
https://api.dingtalk.com/v1.0/contact/users/me
提示:
{
"code":"Forbidden.AccessDenied.AccessTokenPermissionDenied",
"requestid":"DEB5ECF0-E92B-7F94-842F-33CAE8F603C9",
"message":"没有调用该接口的权限,接口权限申请参考:https://open.dingtalk.com/document/orgapp-server/add-api-permission",
"accessdenieddetail":{
"requiredScopes":[
"Contact.User.Read"
]
}
}

后台已经给了授权
image.png

展开
收起
游客k4afwsgilcod2 2023-09-01 10:08:54 2031 1
8 条回答
写回答
取消 提交回答
  • 同样的问题,我使用的版本是2.0.67 最新版本,依然出现这个问题。且采用的是新版的官方SDK的示例代码。

    最终是怎么解决的,我明明都授权了

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>dingtalk</artifactId>
            <version>2.0.67</version>
        </dependency>
    
    2023-11-26 21:23:11
    赞同 展开评论 打赏
  • 调用钉钉服务端接口前,需要先添加所需接口的调用权限,应用创建后,系统默认添加身份验证和消息通知接口权限。鼓励应用使用尽可能多的接口,实现跟钉钉核心能力的全面互通。

    接口权限是以应用为维度授予的,每个应用的接口权限都是独立存在的,如果多个应用都需要调用同一个接口,那么每个应用都要添加相对应的接口调用权限。

    例如:企业内同时拥有A、B两个应用,且应用A已经拥有通讯录权限,此时如果应用B要获取企业通讯录,那么也需要添加通讯录权限,添加方式与应用A一样。

    您需要根据要开发的应用,添加需要使用的接口权限。

    参考以下操作,添加接口权限:

    登录开发者后台。

    在应用开发页面,单击目标应用进入应用详情页面。

    在应用详情页,单击权限管理,选择需要添加的权限,单击申请权限。

    d8cbe15021c44b4fa83df67618269e1d_p362050.png

    添加特殊接口调用权限
    对于三方企业应用,获取授权企业内用户或者组织相关信息的接口,需要提交申请后,才可开通使用。

    例如,三方企业应用需要调用通讯录接口获取授权企业内员工和部门信息,申请通讯录接口权限,需要提交审批单,操作流程如下截图。

    管理员登录开发者后台。

    在应用开发页面,单击目标应用进入应用详情页面。

    单击权限管理,选择通讯录管理,单击申请权限。

    5f7a2b5c19dd24beaf5e5b57a26b52e2_p362054.png

    99d00029549af5c6cc700dbf3efd7055_p362055.png

    无权限报错的解决办法
    说明
    此解决方法目前仅限于调用新版服务端API时适用。
    新版服务端API调用无权限时返回的信息如下:

    image.png

    企业内部应用
    企业内部应用调用接口时返回提示“没有调用该接口的权限”,解决步骤:
    74a6e49db96729ca0cf52f814ef98b47_p611374.png

    取出错误信息中AccessDeniedDetail的requiredScopes字段,表示的是当前接口的权限点Code。

    在当前应用的权限管理页面,搜索该权限点Code后,申请开通对应接口权限。

    第三方企业应用
    第三方企业应用调用接口时返回提示“没有调用该接口的权限”,解决步骤:
    95f3a6ce4366b61c7c1ae9db3ed10518_p611458.png

    取出错误信息中AccessDeniedDetail的requiredScopes字段,表示的是当前接口的权限点Code。

    在当前应用的权限管理页面,搜索该权限点Code后,申请开通对应接口权限。

    该Code作为统一授权套件SDK的rpcScope或fieldScope参数值。

    2023-09-02 15:43:52
    赞同 7 展开评论 打赏
  • 根据钉钉接口的返回信息,您调用的接口是被拒绝访问的,因为您没有该接口的权限。错误信息中提到了需要申请接口权限,并列出了所需的权限范围为"Contact.User.Read"。

    在申请接口权限时,请确保选择了"Contact.User.Read"权限范围。

    一旦您获得了相应的权限,再次调用接口时,将带上正确的访问令牌,并确保在HTTP请求头中包含Authorization: Bearer ,其中是您获得的有效访问令牌。

    2023-09-02 07:51:54
    赞同 6 展开评论 打赏
  • 北京阿里云ACE会长

    我已经认真阅读了 你的问题:

    【 钉钉调用接口提示未授权

    并思考了

    建议如下:


    遇到“未授权”的问题,通常是由于访问令牌(AccessToken)权限不足或者已经过期。您可以尝试以下方法进行解决:

    1. 确保您已经成功获取了钉钉的访问令牌。您可以在钉钉的开发者中心中创建一个应用并获取相应的访问令牌。如果您已经获取了访问令牌,请跳至步骤 2。
    2. 检查访问令牌是否过期。访问令牌通常有一个有效期,您可以在钉钉开发者中心的“API 管理”页面查看令牌的过期时间。如果令牌已经过期,您需要重新获取一个新的访问令牌。
    3. 确保您的请求中使用的访问令牌是正确的。在调用钉钉 API 时,您需要在请求头中添加一个名为“Authorization”的字段,该字段的值应为您的访问令牌。例如:

    https://api.dingtalk.com/v1.0/contact/users/me?access_token=your_access_token
    CopyCopy

    请将your_access_token替换为您实际的访问令牌。

    1. 如果问题仍然存在,您可以尝试在钉钉的开发者中心中创建一个新的应用,并获取相应的访问令牌。然后,使用新的访问令牌尝试调用 API。
    2. 如果您使用的是第三方库或者框架进行 API 调用,请确保库或框架的配置正确,并且已经正确地设置了访问令牌。
    2023-09-01 18:48:31
    赞同 8 展开评论 打赏
  • 当钉钉调用接口提示未授权时,这可能是由于以下原因之一:

    1. 无访问权限:你所使用的访问令牌(Access Token)可能没有足够的权限来调用该接口。请确保你具有相应的权限,并使用正确的访问令牌进行请求。

    2. 访问令牌错误或过期:检查你所使用的访问令牌是否正确并且尚未过期。访问令牌通常具有一定的有效期限,超过有效期限后需要重新获取新的访问令牌。

    3. 接口地址错误:确认你正在调用的接口地址是否正确。请检查 API 文档或开发者指南,确保使用正确的接口地址和参数。

    4. 网络连接问题:如果你的网络连接存在问题,可能会导致接口调用失败或返回未授权的错误。请确保你的网络连接正常,可以尝试重新发送请求。

    5. 其他问题:如果上述步骤都没有解决问题,建议查阅钉钉开发者文档、技术支持资源或联系钉钉开发者支持团队,以获取更详细的帮助和指导。

    2023-09-01 18:47:35
    赞同 4 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    钉钉调用接口提示"未授权"的错误通常是由于缺少正确的身份验证或权限配置导致的。以下是一些建议来解决这个问题:

    1. 检查应用的权限配置:在钉钉开放平台中,确保你的应用已经正确配置了所需的权限。登录到钉钉开放平台开发者后台,找到你的应用,并确保已经启用了所需的接口权限。

    2. 校验身份验证信息:在钉钉调用接口时,需要使用正确的身份验证信息。检查你的请求头或参数中是否包含了正确的身份验证信息,如access_token。确保它是有效且没有过期。

    3. 检查接口调用方式和路径:确认你正在使用正确的接口调用方式(GET、POST等)和路径。不同的接口可能有不同的调用方式和路径要求。

    4. 检查网络连接和可访问性:确保你的服务器可以正常访问钉钉的接口服务。检查网络连接是否稳定,并确保没有防火墙或其他限制造成的网络访问问题。

    5. 检查钉钉回调 URL 配置:如果你正在使用钉钉的回调功能,确保你的回调 URL 地址已正确设置,并能够被钉钉访问到。可以通过尝试手动访问该地址进行测试。

    2023-09-01 18:32:55
    赞同 4 展开评论 打赏
  • 在应用的代码中,配置接口权限。在调用接口时,需要在请求头中携带应用的access_token,并确保access_token的权限包含Contact.User.Read。

    2023-09-01 13:24:45
    赞同 5 展开评论 打赏
  • 全栈JAVA领域创作者

    根据您提供的信息,您的钉钉应用已经获得了Contact.User.Read的权限,但是在调用接口时仍然提示未授权。这可能是因为您的应用没有正确配置接口权限。

    具体的配置步骤如下:

    登录钉钉开放平台,进入应用管理页面。
    选择您的应用,进入应用详情页面。
    在应用详情页面中,找到“权限管理”模块,点击“接口权限”按钮。
    在接口权限页面中,找到您要调用的接口,查看该接口的权限要求。
    如果该接口需要Contact.User.Read权限,需要在钉钉开放平台中为您的应用申请该权限,并确保应用已经获得该权限。
    在应用的代码中,配置接口权限。在调用接口时,需要在请求头中携带应用的access_token,并确保access_token的权限包含Contact.User.Read。
    总之,如果在调用钉钉接口时提示未授权,需要检查应用是否正确配置了接口权限,并确保应用已经获得了所需的权限。在配置接口权限时,需要在请求头中携带应用的access_token,并确保access_token的权限包含所需的接口权限。

    2023-09-01 10:27:46
    赞同 3 展开评论 打赏
滑动查看更多
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
钉钉小程序——为工作方式插上翅膀 立即下载
钉钉客户端自动化的应用 立即下载
使命必达 —— 钉钉企业级 消息服务的机遇与挑战 立即下载