问题

如何使用 Zendesk v2 API 对 API 请求进行身份验证?

回答

您必须是已验证用户才能发出通过身份验证的 API 请求。要对 API 请求进行身份验证,请使用电邮地址和密码、电邮地址和 API 密钥,或 OAuth 访问密钥进行基本身份验证。

不同身份验证方法对授权标头的设置各不相同。不处理在有效负载或 URL 中发送的凭证。每个选项如下所示:

  • 密码身份验证
  • API 密钥身份验证
  • OAuth 访问密钥身份验证
  • 查看您的授权标头

密码身份验证

注意:我们将弃用 API 的密码身份验证。根据流量模式和创建帐户的时间,计时可能会有所不同,请参阅此页面:宣布弃用 API 的密码访问。

要使用基本身份验证,请在管理中心的应用和整合 > API > API 配置下以及相关身份验证部分(团队成员或终端用户)启用密码访问。

图像

将电邮地址和密码组合的格式设置为 Base-64 编码字符串。有关如何设置授权标头格式的示例,请查看以下代码块。

Authorization: Basic {base-64-encoded email_address:password}

API 密钥身份验证

如果您使用 API 密钥,请结合您的电邮地址和 API 密钥以生成授权标头。将电邮地址和 API 密钥组合的格式设置为 Base-64 编码字符串。有关如何设置授权标头格式的示例,请查看以下代码块。

Authorization: Basic {base-64-encoded email_address/token:api_token}

OAuth 访问密钥身份验证

如果您使用 OAuth 进行身份验证,请这样设置授权标头的格式:

Authorization: Bearer oauth_access_token

有关更多信息,请参阅文章:对您的应用程序使用 OAuth 身份验证。

查看您的授权标头

要查看您的应用发送的确切内容,请使用第三方页面,例如 Request Bin。将您的标头与 Webhook 使用 OAuth 身份验证生成的标头进行比较。将 Webhook 指向您的 requestb.in URL,然后在添加 Webhook 页面上,单击测试 Webhook 以查看实际情况:

Add_Webhook.jpg

当请求到达您的 requestb.in 后,显示如下:

requestbin

Authorization: Bearer 之后的字符串是由 RequestBin 在帐户设置中的 Programmatic Access(程序访问)下提供的 API 密钥。

如果您使用 Python 提出请求,请按照如下方式设置会话标头。

session = requests.Session()
session.headers = {'Content-Type': 'application/json', 'Authorization': 'Basic Basic_64_encoded_code'}
注意:通过 API 使用量面板监测您的 API 使用情况,并验证是否已达到可能的速率限制。

有关更多信息,请参阅开发者文档:Security and authentication(英文)。

由 Zendesk 提供技术支持