# API访问凭证概述

要调用服务端API,应用需要从开放平台获取相应的访问凭证(access token);访问凭证代表应用从平台、租户(指公司或者团队)、用户手中获得的授权。

要获取带有授权的BOSSHI开放平台访问凭证(access token),你需要先完成以下步骤:

  1. 应用在开放平台上完成注册
  2. 在开发者后台声明所需要的权限,并发布一个应用的版本
  3. 应用的使用者(用户或者租户管理员)对应用授权

# 访问凭证 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>
1

进行调用。下面是一个调用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>'
1
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>
1
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 需要 不需要 小程序、网页应用等
最后更新于 : 3/5/2024, 11:39:41 AM