获取应用的 Access Token [新🔥]
如果你的应用使用到了应用权限点,推荐你使用此文档获取应用的 Access Token。
Note
一个应用在开发时,就是一个应用。应用只有在被分发时,才被区分为"内部"还是"三方"。
- 原来的钉钉开放平台应用在创建时就区分了"企业内部应用"和"企业三方应用",但随着业务的发展,平台和开发者们逐渐发现应用在开发时没有必要区分是"内部"还是"三方"。
- 如果这个应用最终仅被应用开发者组织使用,即应用被分发给开发者组织,那么这个应用可以被称为企业内部应用。
- 如果这个应用最终通过应用市场被其他组织使用,即应用被分发给其他组织使用,那么这个应用可以被称为企业三方应用。
Note
- 企业内部应用由于只能运行在开发该应用的组织里,因此被归类为单组织应用(Single-tenant Application)。
- 企业三方应用、企业上下游应用和企业上下级应用等应用由于能通过应用市场开通、上下游分发等分发渠道,最终运行在多个组织内,因此被归类为多组织应用(Multi-tenant Application)。
Note
推荐使用此文档获取应用的 Access Token,原来的一些文档由于存在局限性(比如不能满足应用从单组织到多组织的快速切换),将逐步下线。
- 原来企业内部应用获取应用 Access Token 的文档为:获取企业内部应用的 Access Token
- 原来企业三方应用获取应用 Access Token 的文档为:获取第三方应用授权企业的 Access Token
一、获取应用的 ClientId 和 ClientSecret
- 登录钉钉开发者后台。
- 进入已创建的应用,在“凭证与基础信息”里可以看到应用的 ClientId 和 ClientSecret 。
二、请求方法
POST /v1.0/oauth2/{corpId}/token HTTP/1.1
Host:api.dingtalk.com
Content-Type:application/json
{
"client_id" : "ding123",
"client_secret" : "*******",
"grant_type" : "client_credentials"
}
参数 | 是否必填 | 说明 |
---|---|---|
corpId | 是 | 组织ID,应用运行在哪个组织就填写哪个组织的 corpId。 |
client_id | 是 | 应用的 ClientID。 |
client_secret | 是 | 应用的 ClientSecret。 |
grant_type | 是 | 必须是 client_credentials。 |
成功的响应
{
"access_token": "0a7*********657",
"expires_in": 7200
}
参数 | 说明 |
---|---|
access_token | 访问凭证 |
expires_in | 访问凭证有效的时长,单位秒。 |
错误码
状态码 | 错误码 | 错误原因 |
---|---|---|
400 | invalid.client | 无效的 ClientID 或 ClientSecret。 |
400 | unsupported.grant.type | 不支持此授权类型,请检查授权类型参数。 |
400 | unauthorized.client | 应用未被授权。 |
500 | server.error | 服务器意外错误。 |