使用API添加票据附件
您可以使用Zendesk API亚博将文件附加到票据上。附件存储在Zendesk中,并作为票据注释中的链接添加。亚博
在开始之前,请确保为帐户中的最终用户启用了票据附件。看到允许最终用户将文件附加到票据.如果您不是Zendesk管理员,亚博请管理员为您检查设置。
免责声明: 亚博Zendesk提供本文仅用于教学目的。亚博Zendesk不支持或保证该代码。亚博Zendesk也不能为第三方技术(如Postman或Python)提供支持。
关于机票附件
附件以链接的形式出现在Zendesk代理界面的票据注释中。亚博例子:
你可以在Zendesk中预览图片附件。亚博您可以下载其他类型的文件,然后再打开它们。
如果启用了票据通知,则该附件将作为通知电子邮件中的链接显示。例子:
默认情况下,使用带有相当复杂和随机的附件令牌的URL保护附件。但是,拥有URL和令牌的任何人都可以看到附件。如果电子邮件通知被错误地发送给预期的最终用户以外的人,敏感信息可能会意外暴露。您可以启用私有附件。看到启用私有附件在Zendes亚博k帮助中心。
在Zendesk中,票据附件的工作原理如下:亚博
您只能将文件附加到票据中的注释,而不能附加到票据本身。
在向票据添加注释时,只能附加文件。您不能将文件附加到票证中的现有注释中。
您不能从票据中删除注释。但是,您可以从注释中编校附件。看到编辑评论附件.
方法分别上传要附加的文件上传文件附件API中的端点。
您可以附加任何类型的文件。文件大小限制为50mb。
添加票据附件
使用API向票据添加附件包括两个步骤:
步骤1 -上传要附加的文件
使用上传文件的端点附件的API要上传您想要附加到票据注释的文件:
POST / api / v2 /上传吗?文件名={文件名}
请求只上传文件;它不会附在票上。但是,请求将返回一个令牌,您可以在步骤2中使用该令牌将文件附加到票据上。
示例请求:
旋度“https://example.亚博zendesk.com/api/v2/uploads.json?filename=order_issue.png”\
--数据-二进制@screenshot_02.png \
-H“内容类型:图像/ png”\
-v-u{email_address}:{密码}\
-X帖子
的文件名
必选查询参数。它决定在附加到票据时将文件命名为什么。它不会指定您要上传的系统上的文件。本例中以待上传的本地文件命名screenshot_02.png但它将被重新命名order_issue.png在票里。更改名称有助于为代理提供关于附件的更多上下文。
虽然这两个名称可以不同,但它们的文件扩展名必须匹配。如果它们不匹配,代理的浏览器或文件读取器在尝试打开附件时可能会报错。从应用程序的角度来看,文件的内容将与文件扩展名不兼容。
的内容类型
头必须包含一个可识别的MIME类型,正确描述所上传文件的类型。如果不能发送已识别的正确类型,可能会导致不希望发生的行为。例如,浏览器内的音频播放可能会被浏览器的安全机制中断,因为上传的mp3类型不正确。
因为你不能指定application / json此请求的内容类型报头,必须追加. json到端点url:
/ api / v2 / uploads.json…
如果请求成功上传了文件,响应将返回一个令牌
值,以及其他数据。保存令牌。在下一步中,您将使用它将文件附加到票据。令牌的有效期直到expires_at
时间。
示例响应:
{
“上传”:{
“令牌”:“4 bllksou63cpqaieomxyyxzuh”,
“expires_at”:“2021 - 05 - 08 - t22:50:18z”,
“附件”:{
“url”:“https://example.亚博zendesk.com/api/v2/attachments/1503194928902.json”,
“id”:1503194928902,
“file_name”:“order_issue.png”,
“content_url”:“https://example.亚博zendesk.com/attachments/token/vp7DnuiSvehLZtK2yrPjqJ1l6/?name=order_issue.png”,
“content_type”:“图像/ png”
},
“附件”:[
{
“url”:“https://example.亚博zendesk.com/api/v2/attachments/1503194928902.json”,
“id”:1503194928902,
“file_name”:“order_issue.png”,
“content_url”:“https://example.亚博zendesk.com/attachments/token/vp7DnuiSvehLZtK2yrPjqJ1l6/?name=order_issue.png”,
“content_type”:“图像/ png”
}
]
}
}
第2步-将文件附加到一个新的票据注释
保存后令牌
在上传过程中,您可以使用它将文件附加到票据注释。
您不能将文件直接附加到票据上。您只能将该文件附加到票据注释,并且只能在向票据添加注释时才可以。您不能将文件附加到现有的票据注释。
方法创建或更新票据,只能向票据添加注释票API.
类中创建或更新带有新注释的票据时,指定一个或多个上传令牌上传
您的财产评论
对象。以下更新票示例添加了一个注释,其中包含了第一步中上传的文件:
旋度https://例子.亚博.com/api/v2/票/45135\
-d'{"ticket": {"comment": {"body": "Press play", "uploads": ["4bLLKSOU63CPqaIeOMXYyXzUh"]}}}'\
-H“application / json内容类型:\
-v-u{email_address}:{密码}-X把
令牌是一次性使用的。在您使用令牌将文件附加到票据注释之后,您不能使用相同的令牌将同一文件附加到另一个票据注释。
方法,可以验证文件是否附加到注释,方法是查看代理界面中的票据或评论列表端点。
例子
本节展示如何使用curl、Postman和Python添加票据附件:
每个虚构的例子都将相同的图像附加到新票据的第一个注释上。每个示例的请求细节如下:
- 本地文件名:img_0603.png
- 附件文件名:smoke_colors.png
- 帐号名:example.zendesk.co亚博m
- 用户的电子邮件:(电子邮件保护)
- API令牌:xpfRUSj51oGQta26nhRyaLaIBdhf
在测试附件时替换这些值。如果成功,该附件将类似于关于机票附件.
旋度的例子
要上传文件
在命令行界面(CLI)中,导航到包含img_0603.png的形象。
在命令行中执行如下命令:
旋度“https://example.亚博zendesk.com/api/v2/uploads.json?filename=smoke_colors.png”\
--数据-二进制@img_0603.png \
-H“内容类型:图像/ png”\
-v-u(电子邮件保护).com/令牌:xpfRUSj51oGQta26nhRyaLaIBdhf \
-X帖子
使用
——data-binary
选项,指定与请求一起上传的文件。的@
标志指向系统上的一个文件。在本例中,该文件与运行curl请求的目录位于同一个目录中。如果文件在运行curl请求时使用的文件夹之外的文件夹中,请指定相对路径。例子:
——data-binary @images / img_0603.png
如果文件名包含空格或其他可能混淆curl的字符,请将文件名括在引号中。如果文件名没有文件扩展名,请确保在curl命令中包含一个扩展名。例如,如果系统上的文件命名为屏幕截图2021-05-06上午9:41.08,然后使用:
——data-binary @"截图2021-05-06 at 9.41.08 AM.png"
的
内容类型
头必须包含一个可识别的MIME类型,正确描述所上传文件的类型。如果不能发送已识别的正确类型,可能会导致不希望发生的行为。例如,浏览器内的音频播放可能会被浏览器的安全机制中断,因为上传的mp3类型不正确。如果请求成功,检索
令牌
值,并保存它。假设请求返回如下内容
令牌
属性:“令牌”:“hX0TsMPY8sDHrpmnUtDFqqNtJ”
.
将文件添加到票据中
运行以下命令创建一个附加到第一条注释的文件的票据:
旋度https://例子.亚博.com/api/v2/票\
-d'{"ticket": {"subject": "我的打印机着火了!","comment": {"body": "烟雾很丰富多彩。","uploads": ["hX0TsMPY8sDHrpmnUtDFqqNtJ"]}}}'\
-H“application / json内容类型:\
-v-u(电子邮件保护).com/令牌:xpfRUSj51oGQta26nhRyaLaIBdhf-X帖子
的
上传
属性指定上载令牌。在Zendesk中寻找新票据,并验证该文件是否附加到第亚博一个注释。
邮递员的例子
要上传文件
在Postman中,通过选择创建一个请求文件>新并选择请求.
命名请求上传文件,分配给集合,单击保存.
在请求路径下,选择帖子并进入如下路径:
https://example.亚博zendesk.com/api/v2/uploads.json
在参数个数选项卡,添加一个名为文件名值为smoke_colors.png.
在授权选项卡上,选择基本认证,并输入以下设置:
- 用户名:(电子邮件保护)/令牌
- 密码:xpfRUSj51oGQta26nhRyaLaIBdhf
您还可以在集合级别设置凭据,然后进行选择从父母那里继承认证菜单上的。
在头选项卡,添加一个名为内容类型值为/ png图像.
在身体选项卡,选择二进制单选按钮。单击“选择文件”,选择img_0603.png文件。
邮差应该是这样的,但是有不同的
文件名
值:点击发送提出请求。
如果请求成功,检索
令牌
值,并保存它。假设请求返回如下内容
令牌
属性:“令牌”:“hX0TsMPY8sDHrpmnUtDFqqNtJ”
.
将文件添加到票据中
在Postman中,创建一个名为创建机票.
对于请求路径,选择帖子并进入如下路径:
https://example.亚博zendesk.com/api/v2/tickets.json
在授权选项卡,使用以下凭证:
- 用户名:(电子邮件保护)/令牌
- 密码:xpfRUSj51oGQta26nhRyaLaIBdhf
在身体选项卡,选择生单选按钮,选择JSON,并将以下有效负载粘贴到面板中:
{
“票”:{
“主题”:“我的打印机着火了!”,
“评论”:{
“身体”:“烟的颜色很鲜艳。”,
“上传”:[
“hX0TsMPY8sDHrpmnUtDFqqNtJ”
]
}
}
}
的
上传
属性指定上载令牌。点击发送提出请求。
在Zendesk中寻找新票据,并验证该文件是否附加到第亚博一个注释。
Python示例
下面的Python脚本上传一个文件,并将其附加到新票据中的注释。它使用了流行的请求库来简化请求。
进口请求
local_filename=“img_0603.png”
attachment_filename=“smoke_colors.png”
电子邮件='(电子邮件保护)'
api_token=“xpfRUSj51oGQta26nhRyaLaIBdhf”
身份验证=(f“{email} /令牌”,api_token)
#上传文件
url=“https://example.亚博zendesk.com/api/v2/uploads.json”
参数个数={“文件名”:attachment_filename}
头={“内容类型”:“图像/ png”}
与开放(local_filename,rb的)作为f:
响应=请求.帖子(url,参数个数=参数个数,数据=f,头=头,身份验证=身份验证).json()
upload_token=响应[“上传”][“令牌”]
#附加文件
url=“https://example.亚博zendesk.com/api/v2/tickets”
有效载荷={
“票”:{
“主题”:“我的打印机着火了!”,
“评论”:{
“身体”:“烟的颜色很鲜艳。”,
“上传”:[upload_token]
}
}
}
响应=请求.帖子(url,json=有效载荷,身份验证=身份验证).json()
打印(响应)
它是如何工作的
对于这个简单的示例,脚本首先将值赋给local_filename
而且attachment_filename
变量。通常从函数参数或通过提示用户获得这些值。例子:
local_filename=输入(输入本地文件的名称:)
attachment_filename=输入('输入附件名称:')
接下来,脚本定义了一个身份验证
请求参数来授权请求:
电子邮件='(电子邮件保护)'
api_token=“xpfRUSj51oGQta26nhRyaLaIBdhf”
身份验证=(f“{email} /令牌”,api_token)
脚本还定义了参数个数
而且头
请求参数,附件需要这些参数:
参数个数={“文件名”:attachment_filename}
头={“内容类型”:“图像/ png”}
该脚本打开local_filename文件,并将类文件对象传递给请求(以及前面定义的对象)参数个数
,头
,身份验证
参数):
与开放(local_filename,rb的)作为f:
响应=请求.帖子(url,参数个数=参数个数,数据=f,头=头,身份验证=身份验证).json()
响应对象的json ()
方法将响应的JSON数据转换为Python数据。
脚本检索令牌
值从响应数据:
upload_token=响应[“上传”][“令牌”]
脚本的其余部分创建一个包含注释的票据,其中包括用于附加文件的上传令牌。