# API访问凭证概述
要调用服务端API,应用需要从开放平台获取相应的访问凭证(access token);访问凭证代表应用从平台、租户(指公司或者团队)、用户手中获得的授权。
要获取带有授权的BOSSHI开放平台访问凭证(access token),你需要先完成以下步骤:
- 应用在开放平台上完成注册
- 在开发者后台声明所需要的权限,并发布一个应用的版本
- 应用的使用者(用户或者租户管理员)对应用授权
# 访问凭证 access token
开放平台提供了3种不同类型的访问凭证,用于验证调用方身份、确保调用方具有执行操作所需要的权限:
app_access_token:
应用
授权凭证,开放平台可据此识别调用方的应用身份,应用可以访问应用自身相关的信息,不归属到具体的企业或者用户,比如获取当前登录应用的用户身份。
tenant_access_token:
租户
授权凭证,使用该access token,应用将代表公司或者团队执行对应的操作,比如获取一个通讯录用户的信息。
user_access_token:
用户
授权凭证,使用该access token,应用将代表用户执行对应的操作,比如通过API 创建一篇云文档或者一个日程。
以下是三种访问凭证的示例及获取方式:
访问凭证 | 示例 | 获取方式 |
---|---|---|
app_access_token(企业自建应用) | b-r5n3a22db1c50d774665a340e3fd9888f97a | 获取应用访问凭证 |
tenant_access_token(企业自建应用) | b-zetd3d7361262d4448fa87f4347078d9c51d | 获取租户访问凭证 |
user_access_token | u-crk025b5da4f51524a5f821c1d79aaa6a4a1 | 获取用户访问凭证 |
# 如何使用访问凭证(access token)
不同的API可能会支持上述一种或多种的访问凭证(access token)作为API调用时的鉴权手段。
API调用时,需要将 access token 放入请求
Header
中,使用语法
Authorization:Bearer <access token>
进行调用。下面是一个调用API查询 获取用户列表的示例,需要注意的是,示例中的 access_token 需要替换为有效的访问凭证(access token)。
$curl --request GET 'https://hi-open.zhipin.com/open-apis/contact/users' \
--header 'Content-Type: application/json; charset=utf-8' \
--header 'Authorization:Bearer <实际的 access token>'
2
3
对应的 HTTP 请求内容:
GET /open-apis/contact/users HTTP/1
Host: hi-open.zhipin.com
Content-Type: application/json;charset=utf-8
Authorization: Bearer <实际的 access token>
2
3
4
5
6
# 选择合适的访问凭证(access token)
不同的 access token 代表了不同的资源访问权限,不同的API可能会支持上述一种或多种的 access token 访问方式。调用同一个API,使用不同的 access token 将会获取不同的数据。
- user_access_token:需要用户登录或者授权应用,应用可以以用户的身份进行相关的操作,
访问的数据范围、可以执行的操作将会受到该用户的权限影响
- tenant_access_token或者 app_access_token:由管理员授权之后,应用使用自己的身份进行相关的操作,
访问的数据范围、可以执行的操作将会受到应用自身的数据权限的影响
需要根据应用场景来选择使用合适的access token,以下是不同的access token在主要场景下的区别。
访问凭证类型 | 是否需要用户授权 | 是否需要租户管理员授权 | 适用的应用场景 |
---|---|---|---|
app_access_token | 不需要 | 不需要 | 纯后台服务等 |
tenant_access_token | 不需要 | 需要 | 网页应用、机器人、纯后台服务等 |
user_access_token | 需要 | 不需要 | 小程序、网页应用等 |