问题
如何使用Zendesk v2 API验证API请求?亚博
回答
你一定是个验证用户发出API请求。要对API请求进行身份验证,您可以使用电子邮件地址和密码、电子邮件地址和API令牌或OAuth访问令牌进行基本身份验证。
所有的身份验证方法都以不同的方式设置授权头。不处理在有效负载或URL中发送的凭据。
要查看每种身份验证方法的信息,请单击下面的每个选项卡。
密码身份验证
API令牌认证
OAuth访问令牌认证
密码身份验证
如果使用基本身份验证,请将电子邮件地址和密码组合起来生成授权头。要使用基本身份验证,必须在配置文件中启用密码访问管理中心接口应用程序和集成>api>亚博Zendesk API.
电子邮件地址和密码组合需要是Base-64编码的字符串。有关如何格式化授权标头的示例,请参阅下面的代码块。
授权:Basic {base-64编码email_address:password}
API令牌认证
如果你使用API的令牌,结合您的电子邮件地址和API令牌来生成授权头。电子邮件地址和API令牌组合需要是base - 64
编码的字符串。有关如何格式化授权标头的示例,请参阅下面的代码块。
授权:Basic {base-64编码的email_address/token:api_token}
查看授权头
要查看应用程序发送的确切内容,请使用第三方页面,例如要求本.将您的头文件与由webhook使用OAuth身份验证。把网钩指向你的requestb.in网址,在添加webhook页面,点击测试webhook要查看实际操作:
一旦请求击中你的requestb.in,它看起来像这样:
后面的字符串授权:持票人
是您的帐户设置中的RequestBin提供的API密钥编程访问.
如果您使用python发出请求,请按如下方式设置会话头。
session = requests.Session()
会话。headers = {'Content-Type': 'application/json', 'Authorization': 'Basic Basic_64_encoded_code'}
有关更多信息,请参阅开发人员文档:安全性和身份验证.
13个评论
嗨,我正在为我们的最终用户定制请求表单(但仍然在我们的Zendesk子域内)。亚博当我尝试提交表单并发送数据以创建请求时,它返回一个403错误。同样的代码在postman上工作,并且正在创建请求。
我真搞不懂为什么我得了403。我尝试了电子邮件/令牌:api_key认证和基本电子邮件:密码认证。
https://support.亚博zendesk.com/hc/en-us/community/posts/1260800839050-403-error-when-creating-request-via-API
@……
我想我上面的代码5帖子会对你有所帮助。
https://support.亚博zendesk.com/hc/en-us/articles/115000510267/comments/360005066074
@Tomer你是说base64编码吗?我这样做了,我的email/token:api_token被编码。我尝试使用其中一个网站手动编码它,也disbtoa ('email/token:api_token');但两者都给了我一个403错误。
嗨@……
我得到相同的身份验证错误。你能帮我一下吗?我还在这上面开了一张票。
C:\Users\yyy> curl https://<子域>.zendesk亚博.com/api/v2/users.json -u yyy@.com/token:xxxxxxx
{"error":"无法验证您的身份"}
谢谢
-Bheem
嗨,团队,
警告:Token是在zendesk中创建的亚博
作为管理员,我与其他团队成员共享我的电子邮件地址和令牌。他们能访问API吗?或者我需要从用户试图访问API的同一系统/pc登录到zendesk亚博 ?
或者他们可以通过我的电子邮件地址和令牌简单地没有我登录到zendesk?亚博
问候,
卡拉奇警察局
卡拉奇警察局汗
简单地拥有您的电子邮件和API令牌足以让任何用户代表您的用户发出API请求。这使他们能够做任何你的用户可以通过API做的事情。这包括删除诸如票/用户/组织/文章/部分/类别/触发器之类的东西非常破坏性的。出于这个原因,我建议您对谁可以访问这些令牌非常有选择性。
请在本页更清楚地说明您必须对令牌进行Base-64编码。下面是我在Mac上用Base-64编码令牌的命令。
HeyO尼克,
谢谢你的反馈。我将对本文进行更新,使其更清楚。
我刚刚遇到并解决了使用Postman进行API请求的问题,其中返回了以下内容:
根据API文档,我使用以下内容,所以一切都应该正确设置:
事实证明,当base64编码的身份验证值在Postman中解码时,它在解码的用户名字符串中添加了一个额外的冒号:(我必须使用第三方解码站点来检查这一点)。
为了解决这个问题,我必须:
那时我的请求开始通过。希望这能帮助到其他遇到邮差的人!
我已经为我的终端用户设置了SSO。
我想在我自己的web应用程序平台上显示一些Zendes亚博k内容,而不必通过我的服务器代理请求到Zendesk API。
是否可以使用我从/access/ JWT端点获得的JWT令牌发出/api/v2/help_center/*请求?
还有CORS呢?当然,现在我只得到401响应,但我看到它不支持跨域请求。
嗨!我试图使用Azure逻辑应用程序来验证POC,但我一直得到401无法验证你。
我已经编码了我的用户名/令牌:aaaa通过powershell这种方式,但我一定是错过了一些东西。
$text = "myname@mydomain.com/令牌:tokentexthere”
$ encoding = [convert]::ToBase64String([text.encoding]::Unicode.GetBytes($text))
美元的编码
我浏览了这篇文章,并尝试了OAuth、api、用户/密码,但没有通过身份验证。
欢迎有任何想法!
嗨弗雷泽,凡妮莎
在做编码后,你传递的编码值作为一个基本授权头文件在这里:https://developer.亚博zendesk.com/api-reference/introduction/security-and-auth/#basic-authentication
如果这对你没有帮助,我建议你联系我们的支持团队查看你特定账户的日志。
我确信这是我做错了什么,但我一遍又一遍地看那篇文章,并没有看到我做错了什么。我会联系技术支持。此外,我可以使用email/token:tokeninfo curl,所以它与我的email/token:tokeninfo编码有关。
请登录留下评论。