您可以使用Zendesk API亚博将文件附加到票据上。附件存储在Zendesk中,并作为票据注释中的链接添加。亚博

在开始之前,请确保为帐户中的最终用户启用了票据附件。看到允许最终用户将文件附加到票据.如果您不是Zendesk管理员,亚博请管理员为您检查设置。

免责声明: 亚博Zendesk提供本文仅用于教学目的。亚博Zendesk不支持或保证该代码。亚博Zendesk也不能为第三方技术(如Postman或Python)提供支持。

关于机票附件

附件以链接的形式出现在Zendesk代理界面的票据注释中。亚博例子:

你可以在Zendesk中预览图片附件。亚博您可以下载其他类型的文件,然后再打开它们。

如果启用了票据通知,则该附件将作为通知电子邮件中的链接显示。例子:

默认情况下,使用带有相当复杂和随机的附件令牌的URL保护附件。但是,拥有URL和令牌的任何人都可以看到附件。如果电子邮件通知被错误地发送给预期的最终用户以外的人,敏感信息可能会意外暴露。您可以启用私有附件。看到启用私有附件在Zendes亚博k帮助中心。

在Zendesk中,票据附件的工作原理如下:亚博

  • 您只能将文件附加到票据中的注释,而不能附加到票据本身。

  • 在向票据添加注释时,只能附加文件。您不能将文件附加到票证中的现有注释中。

  • 方法创建或更新票据时,只能将带有附件的注释添加到票据票API,而不是票务评论API,它不支持向门票添加评论。

  • 您不能从票据中删除注释。但是,您可以从注释中编校附件。看到编辑评论附件

  • 方法分别上传要附加的文件上传文件附件API中的端点。

  • 您可以附加任何类型的文件。文件大小限制为50mb。

添加票据附件

使用API向票据添加附件包括两个步骤:

  1. 上传要附加的文件

  2. 将文件附加到一个新的票据注释

步骤1 -上传要附加的文件

使用上传文件的端点附件的API要上传您想要附加到票据注释的文件:

POST / api / v2 /上传吗?文件名={文件名}

请求只上传文件;它不会附在票上。但是,请求将返回一个令牌,您可以在步骤2中使用该令牌将文件附加到票据上。

示例请求:

             
旋度“https://example.亚博zendesk.com/api/v2/uploads.json?filename=order_issue.png”--数据-二进制@screenshot_02png \-H“内容类型:图像/ png”-v-uemail_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-uemail_address密码-X

令牌是一次性使用的。在您使用令牌将文件附加到票据注释之后,您不能使用相同的令牌将同一文件附加到另一个票据注释。

方法,可以验证文件是否附加到注释,方法是查看代理界面中的票据或评论列表端点。

例子

本节展示如何使用curl、Postman和Python添加票据附件:

每个虚构的例子都将相同的图像附加到新票据的第一个注释上。每个示例的请求细节如下:

  • 本地文件名:img_0603.png
  • 附件文件名:smoke_colors.png
  • 帐号名:example.zendesk.co亚博m
  • 用户的电子邮件:(电子邮件保护)
  • API令牌:xpfRUSj51oGQta26nhRyaLaIBdhf

在测试附件时替换这些值。如果成功,该附件将类似于关于机票附件

旋度的例子

要上传文件

  1. 在命令行界面(CLI)中,导航到包含img_0603.png的形象。

  2. 在命令行中执行如下命令:

                   
    旋度“https://example.亚博zendesk.com/api/v2/uploads.json?filename=smoke_colors.png”--数据-二进制@img_0603png \-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类型不正确。

  3. 如果请求成功,检索令牌值,并保存它。

    假设请求返回如下内容令牌属性:

    “令牌”:“hX0TsMPY8sDHrpmnUtDFqqNtJ”

将文件添加到票据中

  1. 运行以下命令创建一个附加到第一条注释的文件的票据:

                   
    旋度https//例子亚博com/api/v2/票\-d'{"ticket": {"subject": "我的打印机着火了!","comment": {"body": "烟雾很丰富多彩。","uploads": ["hX0TsMPY8sDHrpmnUtDFqqNtJ"]}}}'-H“application / json内容类型:-v-u(电子邮件保护)com/令牌xpfRUSj51oGQta26nhRyaLaIBdhf-X帖子

    上传属性指定上载令牌。

  2. 在Zendesk中寻找新票据,并验证该文件是否附加到第亚博一个注释。

邮递员的例子

要上传文件

  1. 在Postman中,通过选择创建一个请求文件>并选择请求

    命名请求上传文件,分配给集合,单击保存

  2. 在请求路径下,选择帖子并进入如下路径:

    https://example.亚博zendesk.com/api/v2/uploads.json

  3. 参数个数选项卡,添加一个名为文件名值为smoke_colors.png

  4. 授权选项卡上,选择基本认证,并输入以下设置:

    您还可以在集合级别设置凭据,然后进行选择从父母那里继承认证菜单上的。

  5. 选项卡,添加一个名为内容类型值为/ png图像

  6. 身体选项卡,选择二进制单选按钮。单击“选择文件”,选择img_0603.png文件。

    邮差应该是这样的,但是有不同的文件名值:

  7. 点击发送提出请求。

  8. 如果请求成功,检索令牌值,并保存它。

    假设请求返回如下内容令牌属性:

    “令牌”:“hX0TsMPY8sDHrpmnUtDFqqNtJ”

将文件添加到票据中

  1. 在Postman中,创建一个名为创建机票

  2. 对于请求路径,选择帖子并进入如下路径:

    https://example.亚博zendesk.com/api/v2/tickets.json

  3. 授权选项卡,使用以下凭证:

  4. 身体选项卡,选择单选按钮,选择JSON,并将以下有效负载粘贴到面板中:

                   
    “票”“主题”“我的打印机着火了!”“评论”“身体”“烟的颜色很鲜艳。”“上传”“hX0TsMPY8sDHrpmnUtDFqqNtJ”

    上传属性指定上载令牌。

  5. 点击发送提出请求。

  6. 在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_filenamerb的作为f响应请求帖子url参数个数参数个数数据f身份验证身份验证jsonupload_token响应“上传”“令牌”#附加文件url“https://example.亚博zendesk.com/api/v2/tickets”有效载荷“票”“主题”“我的打印机着火了!”“评论”“身体”“烟的颜色很鲜艳。”“上传”upload_token响应请求帖子urljson有效载荷身份验证身份验证json打印响应

它是如何工作的

对于这个简单的示例,脚本首先将值赋给local_filename而且attachment_filename变量。通常从函数参数或通过提示用户获得这些值。例子:

             
local_filename输入输入本地文件的名称:attachment_filename输入'输入附件名称:'

接下来,脚本定义了一个身份验证请求参数来授权请求:

             
电子邮件(电子邮件保护)api_token“xpfRUSj51oGQta26nhRyaLaIBdhf”身份验证f“{email} /令牌”api_token

脚本还定义了参数个数而且请求参数,附件需要这些参数:

             
参数个数“文件名”attachment_filename“内容类型”“图像/ png”

该脚本打开local_filename文件,并将类文件对象传递给请求(以及前面定义的对象)参数个数,身份验证参数):

             
开放local_filenamerb的作为f响应请求帖子url参数个数参数个数数据f身份验证身份验证json

响应对象的json ()方法将响应的JSON数据转换为Python数据。

脚本检索令牌值从响应数据:

             
upload_token响应“上传”“令牌”

脚本的其余部分创建一个包含注释的票据,其中包括用于附加文件的上传令牌。