问题
如何使用 Zendesk v2 API 对 API 请求进行身份验证?
回答
您必须是已验证用户才能发出通过身份验证的 API 请求。要对 API 请求进行身份验证,请使用电邮地址和密码、电邮地址和 API 密钥,或 OAuth 访问密钥进行基本身份验证。
不同身份验证方法对授权标头的设置各不相同。不处理在有效负载或 URL 中发送的凭证。每个选项如下所示:
密码身份验证
如果您使用基本身份验证,请结合您的电邮地址和密码以生成授权标头。要使用基本身份验证,请在管理中心的应用和整合 > APIs > Zendesk 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 以查看实际情况:
当请求到达您的 requestb.in 后,显示如下:
Authorization: Bearer
之后的字符串是由 RequestBin 在账户设置中的 Programmatic Access(程序访问)下提供的 API 密钥。
如果您使用 Python 提出请求,请按照如下方式设置会话标头。
session = requests.Session()
session.headers = {'Content-Type': 'application/json', 'Authorization': 'Basic Basic_64_encoded_code'}
有关更多信息,请参阅开发者文档:Security and authentication(英文)。