票审核
审计是票据所有更新的只读历史记录。在Zendesk Support中更新票据时,将存储审计亚博。每次审计都代表对票据的一次更新。更新可以由一个或多个事件组成。例子:
- 日志含义更改ticket字段的值
- 添加了一条新的注释
- 添加或删除标记
- 发送了通知
有关完整的列表,请参见审计事件参考.
必需的OAuth范围
Ticket auditing端点需要一个全局的“读”范围用于OAuth身份验证。您不能使用“auditlogs:read”或“tickets:read”作用域访问端点。
JSON格式
票据审计被表示为具有以下属性的JSON对象:
名字 | 类型 | 只读 | 强制性的 | 描述 |
---|---|---|---|---|
author_id | 整数 | 真正的 | 假 | 创建审计的用户 |
created_at | 字符串 | 真正的 | 假 | 创建审计的时间 |
事件 | 数组 | 假 | 假 | 在此审计中发生的事件的数组。看到审计事件参考 |
id | 整数 | 真正的 | 假 | 在创建审计时自动分配 |
元数据 | 对象 | 真正的 | 假 | 审计、自定义和系统数据的元数据 |
ticket_id | 整数 | 真正的 | 假 | 关联票据的ID |
通过 | 对象 | 假 | 假 | 描述如何创建对象。看到通过对象引用 |
例子
{
“author_id”:35436,
“created_at”:“2009 - 07 - 20 - t22:55:29z”,
“事件”:[
{
“附件”:[],
“身体”:“谢谢你的帮助!”,
“id”:1564245,
“公共”:真正的,
“类型”:“评论”
},
{
“身体”:“47号票已经更新”,
“id”:1564246,
“主题”:“您的机票已更新”,
“类型”:“通知”
}
],
“id”:35436,
“元数据”:{
“自定义”:{
“time_spent”:“3锰”
},
“系统”:{
“ip_address”:“184.106.40.75”
}
},
“ticket_id”:47,
“通过”:{
“通道”:“网络”
}
}
列出所有票务审核
GET / api / v2 / ticket_audits
GET / api / v2 / ticket_audits.json吗?光标= fDE1MDE1OTE1MzQuMHx8MTEzMjQ4NDI1MQ % 3 d % 3 d
返回机票审计。响应中不包括存档的票据。使用列出票据的审计端点检索已归档票据的审计记录。要了解更多关于存档门票的信息,请参见关于存档门票.
这个端点不应该用于捕获变更数据。当连续地跟踪游标的尾部时,一些记录将被跳过。对于这个用例,使用增量票证事件导出API.
分页
- 光标分页
看到分页.
每页最多返回100条记录。
允许
- 管理员
参数
名字 | 类型 | 在 | 要求 | 描述 |
---|---|---|---|---|
限制 | 整数 | 查询 | 假 | 返回的最大结果数 |
代码示例
旋度
旋度https://{子域名}.亚博zendesk.com/api/v2/ticket_audits.json ?限制=1000\
- v - u{email_address}:{密码}
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url: =“https://example.亚博zendesk.com/api/v2/ticket_audits?limit=”
方法: =“获得”
要求的事情,犯错: =http.NewRequest(方法,url,零)
如果犯错! =零{
fmt.Println(犯错)
返回
}
要求的事情.头.添加(“内容类型”,“application / json”)
要求的事情.头.添加(“授权”,“基本< auth-value >”)// Base64编码的"username:password"
客户端: =&http.客户端{}
res,犯错: =客户端.做(要求的事情)
如果犯错! =零{
fmt.Println(犯错)
返回
}
推迟res.身体.关闭()
身体,犯错: =io.ReadAll(res.身体)
如果犯错! =零{
fmt.Println(犯错)
返回
}
fmt.Println(字符串(身体))
}
Java
进口com.squareup.okhttp.*;
OkHttpClient客户端=新OkHttpClient();
HttpUrl.构建器urlBuilder=HttpUrl.解析(“https://example.亚博zendesk.com/api/v2/ticket_audits”)
.newBuilder()
.addQueryParameter(“限制”,"");
请求请求=新请求.构建器()
.url(urlBuilder.构建())
.方法(“获得”,零)
.addHeader(“内容类型”,“application / json”)
.addHeader(“授权”,凭证.基本(“电子邮件”,“你的密码”))
.构建();
响应响应=客户端.newCall(请求).执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“得到”,
url:“https://example.亚博zendesk.com/api/v2/ticket_audits”,
头:{
“内容类型”:“application / json”,
“授权”:的基本< auth-value >”,// Base64编码的"username:password"
},
参数个数:{
“限制”:”,
},
};
axios(配置)
.然后(函数(响应){
控制台.日志(JSON.stringify(响应.数据));
})
.抓(函数(错误){
控制台.日志(错误);
});
Python
进口请求
url=“https://example.亚博zendesk.com/api/v2/ticket_audits?limit=”
头={
“内容类型”:“application / json”,
}
响应=请求.请求(
“获得”,
url,
身份验证=(“<用户名>”,' <密码> '),
头=头
)
打印(响应.文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://example.亚博zendesk.com/api/v2/ticket_audits”)
uri.查询=URI.encode_www_form(“限制”:"")
请求=网::HTTP::得到.新(uri,“内容类型”:“application / json”)
请求.basic_auth“用户名”,“密码”
响应=网::HTTP.开始uri.主机名,uri.港口,use_ssl:真正的做|http|
http.请求(请求)
结束
示例响应(年代)
200好了
// Status 200 OK
{
“after_cursor”:“MTUwMTYwNzUyMi4wfHwxMzQ3NTMxNjcxfA = = ",
“after_url”:“https://subdomain.亚博zendesk.com/api/v2/ticket_audits.json?cursor=MTUwMTYwNzUyMi4wfHwxMzQ3NTMxNjcxfA%3D%3D&limit=1000”,
“审计”:[
{
“author_id”:35436,
“created_at”:“2011 - 09 - 25 - t22:35:44z”,
“事件”:[
{
“附件”:[],
“身体”:“谢谢你的帮助!”,
“id”:1564245,
“公共”:真正的,
“类型”:“评论”
},
{
“身体”:“47号票已经更新”,
“id”:1564246,
“主题”:“您的机票已更新”,
“类型”:“通知”
},
{
“field_name”:“状态”,
“id”:1564247,
“previous_value”:“新”,
“类型”:“改变”,
“价值”:“开放”
},
{
“field_name”:“custom_status_id”,
“id”:1564248,
“previous_value”:1,
“类型”:“改变”,
“价值”:123
}
],
“id”:2127301143,
“元数据”:{
“自定义”:{
“time_spent”:“3锰”
},
“系统”:{
“ip_address”:“184.106.40.75”
}
},
“ticket_id”:123,
“通过”:{
“通道”:“网络”
}
}
],
“before_cursor”:“fDE1MDE1NzUxMjIuMHx8MTM0NzM0MzAxMQ = = ",
“before_url”:“https://subdomain.亚博zendesk.com/api/v2/ticket_audits.json?cursor=fDE1MDE1NzUxMjIuMHx8MTM0NzM0MzAxMQ%3D%3D&limit=1000”
}
列出票据的审计
拿到票/ api / v2 / / {ticket_id} /审计
列出指定票据的审计。
分页
- 游标分页(推荐)
- 抵消分页
看到分页.
每页最多返回100条记录。
请注意:审核存档的票不支持此端点的分页。
允许
- 代理
参数
名字 | 类型 | 在 | 要求 | 描述 |
---|---|---|---|---|
ticket_id | 整数 | 路径 | 真正的 | 机票的ID |
代码示例
旋度
旋度https://{子域名}.亚博zendesk.com/api/v2/tickets/{ticket_id}/ audits.json\
- v - u{email_address}:{密码}
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url: =“https://example.亚博zendesk.com/api/v2/tickets/123456/audits”
方法: =“获得”
要求的事情,犯错: =http.NewRequest(方法,url,零)
如果犯错! =零{
fmt.Println(犯错)
返回
}
要求的事情.头.添加(“内容类型”,“application / json”)
要求的事情.头.添加(“授权”,“基本< auth-value >”)// Base64编码的"username:password"
客户端: =&http.客户端{}
res,犯错: =客户端.做(要求的事情)
如果犯错! =零{
fmt.Println(犯错)
返回
}
推迟res.身体.关闭()
身体,犯错: =io.ReadAll(res.身体)
如果犯错! =零{
fmt.Println(犯错)
返回
}
fmt.Println(字符串(身体))
}
Java
进口com.squareup.okhttp.*;
OkHttpClient客户端=新OkHttpClient();
HttpUrl.构建器urlBuilder=HttpUrl.解析(“https://example.亚博zendesk.com/api/v2/tickets/123456/audits”)
.newBuilder();
请求请求=新请求.构建器()
.url(urlBuilder.构建())
.方法(“获得”,零)
.addHeader(“内容类型”,“application / json”)
.addHeader(“授权”,凭证.基本(“电子邮件”,“你的密码”))
.构建();
响应响应=客户端.newCall(请求).执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“得到”,
url:“https://example.亚博zendesk.com/api/v2/tickets/123456/audits”,
头:{
“内容类型”:“application / json”,
“授权”:的基本< auth-value >”,// Base64编码的"username:password"
},
};
axios(配置)
.然后(函数(响应){
控制台.日志(JSON.stringify(响应.数据));
})
.抓(函数(错误){
控制台.日志(错误);
});
Python
进口请求
url=“https://example.亚博zendesk.com/api/v2/tickets/123456/audits”
头={
“内容类型”:“application / json”,
}
响应=请求.请求(
“获得”,
url,
身份验证=(“<用户名>”,' <密码> '),
头=头
)
打印(响应.文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://example.亚博zendesk.com/api/v2/tickets/123456/audits”)
请求=网::HTTP::得到.新(uri,“内容类型”:“application / json”)
请求.basic_auth“用户名”,“密码”
响应=网::HTTP.开始uri.主机名,uri.港口,use_ssl:真正的做|http|
http.请求(请求)
结束
示例响应(年代)
200好了
// Status 200 OK
{
“审计”:[
{
“author_id”:5246746,
“created_at”:“2011 - 09 - 25 - t22:35:44z”,
“事件”:[
{
“附件”:[],
“身体”:“这是一个新的私人评论”,
“html_body”:
This is a new private comment
",“id”:2127301148,
“公共”:假,
“类型”:“评论”
},
{
“field_name”:“状态”,
“id”:2127301163,
“previous_value”:“新”,
“类型”:“改变”,
“价值”:“开放”,
“通过”:{
“通道”:“规则”,
“源”:{
“从”:{
“id”:35079792,
“标题”:“分配给第一响应者”
},
“rel”:“触发”,
”到“:{}
}
}
},
{
“field_name”:“custom_status_id”,
“id”:2127301164,
“previous_value”:1,
“类型”:“改变”,
“价值”:123,
“通过”:{
“通道”:“规则”,
“源”:{
“从”:{
“id”:22472716,
“标题”:“分配给第一响应者”
},
“rel”:“触发”,
”到“:{}
}
}
}
],
“id”:2127301143,
“元数据”:{
“自定义”:{},
“系统”:{
“客户端”:“Mozilla / 5.0(麦金塔电脑;Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML,像Gecko) Chrome/14.0.835.186 Safari/535.1",
“ip_address”:“76.218.201.212”,
“位置”:“美国加州旧金山”
}
},
“ticket_id”:666,
“通过”:{
“通道”:“网络”
}
}
],
“数”:1,
“next_page”:零,
“previous_page”:零
}
为罚单计算审计
拿到票/ api / v2 / / {ticket_id} /审计/计数
返回指定票据的大致审计计数。如果计数超过100,000,计数将返回一个缓存结果。这个缓存的结果将每24小时更新一次。
的数(refreshed_at)
属性是一个时间戳,该时间戳指示上次更新计数的时间。
请注意:当计数超过100,000时,数(refreshed_at)
可能偶尔为空。这表明计数正在后台更新,并且数(价值)
在更新完成之前,限制为100,000。
允许
- 代理
参数
名字 | 类型 | 在 | 要求 | 描述 |
---|---|---|---|---|
ticket_id | 整数 | 路径 | 真正的 | 机票的ID |
代码示例
旋度
旋度https://{子域名}.亚博zendesk.com/api/v2/tickets/{ticket_id}/审计/ count.json\
- v - u{email_address}:{密码}
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url: =“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/count”
方法: =“获得”
要求的事情,犯错: =http.NewRequest(方法,url,零)
如果犯错! =零{
fmt.Println(犯错)
返回
}
要求的事情.头.添加(“内容类型”,“application / json”)
要求的事情.头.添加(“授权”,“基本< auth-value >”)// Base64编码的"username:password"
客户端: =&http.客户端{}
res,犯错: =客户端.做(要求的事情)
如果犯错! =零{
fmt.Println(犯错)
返回
}
推迟res.身体.关闭()
身体,犯错: =io.ReadAll(res.身体)
如果犯错! =零{
fmt.Println(犯错)
返回
}
fmt.Println(字符串(身体))
}
Java
进口com.squareup.okhttp.*;
OkHttpClient客户端=新OkHttpClient();
HttpUrl.构建器urlBuilder=HttpUrl.解析(“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/count”)
.newBuilder();
请求请求=新请求.构建器()
.url(urlBuilder.构建())
.方法(“获得”,零)
.addHeader(“内容类型”,“application / json”)
.addHeader(“授权”,凭证.基本(“电子邮件”,“你的密码”))
.构建();
响应响应=客户端.newCall(请求).执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“得到”,
url:“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/count”,
头:{
“内容类型”:“application / json”,
“授权”:的基本< auth-value >”,// Base64编码的"username:password"
},
};
axios(配置)
.然后(函数(响应){
控制台.日志(JSON.stringify(响应.数据));
})
.抓(函数(错误){
控制台.日志(错误);
});
Python
进口请求
url=“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/count”
头={
“内容类型”:“application / json”,
}
响应=请求.请求(
“获得”,
url,
身份验证=(“<用户名>”,' <密码> '),
头=头
)
打印(响应.文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/count”)
请求=网::HTTP::得到.新(uri,“内容类型”:“application / json”)
请求.basic_auth“用户名”,“密码”
响应=网::HTTP.开始uri.主机名,uri.港口,use_ssl:真正的做|http|
http.请求(请求)
结束
示例响应(年代)
200好了
// Status 200 OK
{
“数”:{
“refreshed_at”:“2020 - 04 - 06 - t02:18:17z”,
“价值”:18
}
}
显示审计
拿到票/ api / v2 / / {ticket_id} /审计/ {ticket_audit_id}
允许
- 代理
参数
名字 | 类型 | 在 | 要求 | 描述 |
---|---|---|---|---|
ticket_audit_id | 整数 | 路径 | 真正的 | 票据审计的ID |
ticket_id | 整数 | 路径 | 真正的 | 机票的ID |
代码示例
旋度
旋度https://{子域名}.亚博zendesk.com/api/v2/tickets/{ticket_id}/ audits.json\
- v - u{email_address}:{密码}
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url: =“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143”
方法: =“获得”
要求的事情,犯错: =http.NewRequest(方法,url,零)
如果犯错! =零{
fmt.Println(犯错)
返回
}
要求的事情.头.添加(“内容类型”,“application / json”)
要求的事情.头.添加(“授权”,“基本< auth-value >”)// Base64编码的"username:password"
客户端: =&http.客户端{}
res,犯错: =客户端.做(要求的事情)
如果犯错! =零{
fmt.Println(犯错)
返回
}
推迟res.身体.关闭()
身体,犯错: =io.ReadAll(res.身体)
如果犯错! =零{
fmt.Println(犯错)
返回
}
fmt.Println(字符串(身体))
}
Java
进口com.squareup.okhttp.*;
OkHttpClient客户端=新OkHttpClient();
HttpUrl.构建器urlBuilder=HttpUrl.解析(“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143”)
.newBuilder();
请求请求=新请求.构建器()
.url(urlBuilder.构建())
.方法(“获得”,零)
.addHeader(“内容类型”,“application / json”)
.addHeader(“授权”,凭证.基本(“电子邮件”,“你的密码”))
.构建();
响应响应=客户端.newCall(请求).执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“得到”,
url:“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143”,
头:{
“内容类型”:“application / json”,
“授权”:的基本< auth-value >”,// Base64编码的"username:password"
},
};
axios(配置)
.然后(函数(响应){
控制台.日志(JSON.stringify(响应.数据));
})
.抓(函数(错误){
控制台.日志(错误);
});
Python
进口请求
url=“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143”
头={
“内容类型”:“application / json”,
}
响应=请求.请求(
“获得”,
url,
身份验证=(“<用户名>”,' <密码> '),
头=头
)
打印(响应.文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143”)
请求=网::HTTP::得到.新(uri,“内容类型”:“application / json”)
请求.basic_auth“用户名”,“密码”
响应=网::HTTP.开始uri.主机名,uri.港口,use_ssl:真正的做|http|
http.请求(请求)
结束
示例响应(年代)
200好了
// Status 200 OK
{
“审计”:{
“author_id”:5246746,
“created_at”:“2011 - 09 - 25 - t22:35:44z”,
“事件”:[
{
“附件”:[],
“身体”:“这是一个新的私人评论”,
“html_body”:
This is a new private comment
",“id”:2127301148,
“公共”:假,
“类型”:“评论”
},
{
“field_name”:“状态”,
“id”:2127301163,
“previous_value”:“新”,
“类型”:“改变”,
“价值”:“开放”,
“通过”:{
“通道”:“规则”,
“源”:{
“从”:{
“id”:22472716,
“标题”:“分配给第一响应者”
},
“rel”:“触发”,
”到“:{}
}
}
},
{
“field_name”:“custom_status_id”,
“id”:2127301164,
“previous_value”:1,
“类型”:“改变”,
“价值”:123,
“通过”:{
“通道”:“规则”,
“源”:{
“从”:{
“id”:22472716,
“标题”:“分配给第一响应者”
},
“rel”:“触发”,
”到“:{}
}
}
}
],
“id”:2127301143,
“元数据”:{
“自定义”:{},
“系统”:{
“客户端”:“Mozilla / 5.0(麦金塔电脑;Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML,像Gecko) Chrome/14.0.835.186 Safari/535.1",
“ip_address”:“76.218.201.212”,
“位置”:“美国加州旧金山”
}
},
“ticket_id”:666,
“通过”:{
“通道”:“网络”
}
}
}
将注释从public更改为private
把/ api / v2 /票/ {ticket_id} /审计/ {ticket_audit_id} / make_private
允许
- 代理
参数
名字 | 类型 | 在 | 要求 | 描述 |
---|---|---|---|---|
ticket_audit_id | 整数 | 路径 | 真正的 | 票据审计的ID |
ticket_id | 整数 | 路径 | 真正的 | 机票的ID |
代码示例
旋度
旋度https://{子域名}.亚博zendesk.com/api/v2/tickets/{ticket_id}/审计/{ticket_audit_id}/ make_private.json\
- v - u{email_address}:{密码}-X PUT -d“{}”- h“application / json内容类型:
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url: =“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143/make_private”
方法: =“把”
要求的事情,犯错: =http.NewRequest(方法,url,零)
如果犯错! =零{
fmt.Println(犯错)
返回
}
要求的事情.头.添加(“内容类型”,“application / json”)
要求的事情.头.添加(“授权”,“基本< auth-value >”)// Base64编码的"username:password"
客户端: =&http.客户端{}
res,犯错: =客户端.做(要求的事情)
如果犯错! =零{
fmt.Println(犯错)
返回
}
推迟res.身体.关闭()
身体,犯错: =io.ReadAll(res.身体)
如果犯错! =零{
fmt.Println(犯错)
返回
}
fmt.Println(字符串(身体))
}
Java
进口com.squareup.okhttp.*;
OkHttpClient客户端=新OkHttpClient();
HttpUrl.构建器urlBuilder=HttpUrl.解析(“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143/make_private”)
.newBuilder();
RequestBody身体=RequestBody.创建(MediaType.解析(“application / json”),
"""
""");
请求请求=新请求.构建器()
.url(urlBuilder.构建())
.方法(“把”,身体)
.addHeader(“内容类型”,“application / json”)
.addHeader(“授权”,凭证.基本(“电子邮件”,“你的密码”))
.构建();
响应响应=客户端.newCall(请求).执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“把”,
url:“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143/make_private”,
头:{
“内容类型”:“application / json”,
“授权”:的基本< auth-value >”,// Base64编码的"username:password"
},
};
axios(配置)
.然后(函数(响应){
控制台.日志(JSON.stringify(响应.数据));
})
.抓(函数(错误){
控制台.日志(错误);
});
Python
进口请求
url=“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143/make_private”
头={
“内容类型”:“application / json”,
}
响应=请求.请求(
“把”,
url,
身份验证=(“<用户名>”,' <密码> '),
头=头
)
打印(响应.文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://example.亚博zendesk.com/api/v2/tickets/123456/audits/2127301143/make_private”)
请求=网::HTTP::把.新(uri,“内容类型”:“application / json”)
请求.basic_auth“用户名”,“密码”
响应=网::HTTP.开始uri.主机名,uri.港口,use_ssl:真正的做|http|
http.请求(请求)
结束
示例响应(年代)
200好了
// Status 200 OK
零