通道框架
Channel框架允许您在Zendesk Support和外部系统(如Facebook、Twitter或Instagram)之间构建双向票务创建服务,这里仅亚博举几个例子。有关更多信息,请参见通道框架开发文档。
推送内容支持
POST / api / v2 / any_channel /推动
推送频道框架内容到Zendesk。亚博
允许
- 管理员
请求参数
POST请求接受一个JSON对象参数,该参数包含客户端正在推送的所有资源的数据。亚博电脑端
名字 | 类型 | 要求 | 评论 |
---|---|---|---|
instance_push_id | 字符串 | 是的 | 将推送数据的帐户ID。当管理员设置帐户时,将此信息传递给集成服务 |
request_id | 字符串 | 没有 | 推送请求的唯一标识符 |
external_亚博电脑端resources | 数组 | 是的 | 的亚博电脑端推动 |
external_resource对象
名字 | 类型 | 最大长度 | 强制性的 | 评论 |
---|---|---|---|---|
external_id | 字符串 | 255 | 是的 | 外部资源的唯一标识符。必须是ASCII字符 |
internal_note | 布尔 | 没有 | 如果真正的 创建一个新的内部注释注释 |
|
消息 | 字符串 | 65535 | 是的 | 要转换为票据或注释的文本 |
html_message | 字符串 | 65535 | 没有 | 消息的HTML版本 |
parent_id | 字符串 | 511 | 没有 | 作为响应的外部资源的唯一标识符。用于选择正确的螺纹。回应可能包括parent_id 或thread_id ,但不是两者都有。看到对话线程 |
thread_id | 字符串 | 255 | 没有 | 此项目所属线程的任意标识符。回应可能包括parent_id 或thread_id ,但不是两者都有。看到对话线程 |
created_at | 字符串 | 是的 | 当资源在原始系统中创建时,作为ISO 8601扩展格式的日期-时间。例子:2015 - 09 - 08 - t22:48:09z” | |
作者 | 对象 | 是的 | 看到作者对象下面 | |
display_info | 数组 | 没有 | 应用程序用来修改代理UI的特定于集成的数据数组。看到display_info对象下面 | |
allow_channelback | 布尔 | 没有 | 如果假 ,防止座席在Zendesk界面上对消息进行额外的注释亚博 |
|
字段 | 数组 | 没有 | 要在Zendesk中设置的票证字段数组及其值。亚博看到字段数组 | |
file_urls | 数组 | 10 | 没有 | 要导入Zendesk的文件数组。亚博看到文件的url在Channel框架文档中 |
作者对象
名字 | 类型 | 最大字符 | 强制性的 | 评论 |
---|---|---|---|---|
external_id | 字符串 | 255 | 是的 | 原始服务中用户的唯一标识符 |
名字 | 字符串 | 255 | 没有 | 如果没有提供,默认为外部id |
image_url | 字符串 | 255 | 没有 | 到用户图像的URL |
语言环境 | 字符串 | 255 | 没有 | 用户的区域设置。必须是其中之一的支持地区在Ze亚博ndesk |
字段 | 数组 | 没有 | 包含用户字段标识符('id')和字段值('value')的项数组。对于系统字段(“notes”或“details”),标识符是英文名称。对于自定义字段,标识符可以是ID或名称 |
display_info对象
名字 | 类型 | 最大字符 | 强制性的 | 评论 |
---|---|---|---|---|
类型 | 字符串 | 255 | 是的 | 由集成源服务定义的全局唯一类型标识符。例如:GUID或URI |
数据 | 字符串 | 65535 | 是的 | 包含显示提示的JSON数据 |
字段数组
的字段
数组列出要在Zendesk中设置的票证字段及其值。亚博每个项由一个字段标识符(id
)和值(价值
)。对于Ze亚博ndesk系统字段,例如主题
,标识符为英文名称。对于自定义字段,标识符可以是字段ID或名称。看到票字段.
的字段
数组只能在票证创建时设置票证值,而不能在票证更新时设置。
响应格式
响应是一个包含单个键的JSON对象:
名字 | 类型 | 评论 |
---|---|---|
结果 | 数组 | 的数组结果对象 |
的结果
数组中的每个项目都包含一个条目external_亚博电脑端resources
数组,以相同的顺序。例如,如果你打电话推
如果有3种外部资源,成功的应对措亚博电脑端施将包括结果
有三个条目,对应你的3个资源。亚博电脑端
结果对象
名字 | 类型 | 评论 |
---|---|---|
external_resource_id | 字符串 | 传入的资源的外部ID |
状态 | 对象 | 指定资源的导入状态。看到状态对象 |
状态对象
名字 | 类型 | 评论 |
---|---|---|
代码 | 字符串 | 指示资源导入状态的代码,如状态码 |
描述 | 字符串 | 在异常的情况下,对异常的描述。否则,不在场。 |
状态码
关键 | 描述 |
---|---|
成功 | 外部资源已成功转换为票据或注释 |
already_imported | 由于资源存在预先存在的票据或注释,因此跳过了外部资源的重新导入 |
could_not_locate_parent_external_resource | 类中的parent_id标识的父资源请求,无法找到。的描述中返回无法识别的父ID状态 |
processing_error | 处理资源时发生内部异常。看到描述 在状态对象 |
停止 | 由于先前的资源处理失败,因此未处理此资源亚博电脑端 |
代码示例
旋度
旋度- x“职位”“https://company.亚博zendesk.com/api/v2/any_channel/push.json”\
- hUser-Agent: Z亚博endesk SDK for Android\
- h“授权:承载51b8f8c894514abab0cf4705d414ffd2760589a5dcdb9d2bc812ca0635b402ec”\
- h“application / json内容类型:\
- h“接受:application / json”\
- d $”{
:“instance_push_id d448ef2f-8f51-4fbd-a5d1-9a53d2c8a3c1”,
:“request_id my_request_123”,
“external_亚博电脑端resources”:(
{
“external_id”:“234”,
"message": "一个有用的评论",
"html_message": "A very useful comment",
“parent_id”:“123”,
“created_at”:“2015 - 01 - 13 t08:59:26z”,
"作者":{
“external_id”:“456”,
“名称”:“弗雷德”,
locale: de
},
“display_info”:(
{
“类型”:“9 ef45ff7-4aaa-4a58-8e77-a7c74dfa51c4”,
"data": {"whatever": "I want"}
}
],
“allow_channelback”:真的
}
]
} '
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url:=“https://support.亚博zendesk.com/api/v2/any_channel/push”
方法:=“职位”
要求的事情,犯错:=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://support.亚博zendesk.com/api/v2/any_channel/push”)
.newBuilder();
RequestBody身体=RequestBody.创建(MediaType.解析(“application / json”),
”“”
”“”);
请求请求=新请求.构建器()
.url(urlBuilder.构建())
.方法(“职位”,身体)
.addHeader(“内容类型”,“application / json”)
.addHeader(“授权”,凭证.基本(“电子邮件”,“你的密码”))
.构建();
响应响应=客户端.newCall(请求).执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“职位”,
url:“https://support.亚博zendesk.com/api/v2/any_channel/push”,
头:{
“内容类型”:“application / json”,
“授权”:的基本< auth-value >”,// Base64编码的"username:password"
},
};
axios(配置)
.然后(函数(响应){
控制台.日志(JSON.stringify(响应.数据));
})
.抓(函数(错误){
控制台.日志(错误);
});
Python
进口请求
url=“https://support.亚博zendesk.com/api/v2/any_channel/push”
头={
“内容类型”:“application / json”,
}
响应=请求.请求(
“职位”,
url,
身份验证=(“<用户名>”,' <密码> '),
头=头
)
打印(响应.文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://support.亚博zendesk.com/api/v2/any_channel/push”)
请求=网::HTTP::帖子.新(uri,“内容类型”:“application / json”)
请求.basic_auth“用户名”,“密码”
响应=网::HTTP.开始uri.主机名,uri.港口,use_ssl:真正的做|http|
http.请求(请求)
结束
示例响应(年代)
200好了
//状态200 OK
{
“结果”:[
{
“external_resource_id”:“234”,
“状态”:{
“代码”:“could_not_locate_parent_external_resource”,
“描述”:“123”
}
}
]
}
验证令牌
POST / api / v2 / any_channel / validate_token
允许
- 管理员
请求参数
POST请求接受一个JSON对象参数,其中包含要验证的令牌。
名字 | 类型 | 要求 | 评论 |
---|---|---|---|
instance_push_id | 字符串 | 是的 | 数据将被推送到的帐户ID。当管理员设置帐户时,将此信息传递给集成服务 |
request_id | 字符串 | 没有 | 推送请求的唯一标识符 |
响应格式
响应体为空。
代码示例
旋度
旋度- x“职位”“https://company.亚博zendesk.com/api/v2/any_channel/validate_token”\
- hUser-Agent: Z亚博endesk SDK for Android\
- h“授权:承载51b8f8c894514abab0cf4705d414ffd2760589a5dcdb9d2bc812ca0635b402ec”\
- h“application / json内容类型:\
- h“接受:application / json”\
- d $”{
:“instance_push_id d448ef2f-8f51-4fbd-a5d1-9a53d2c8a3c1”,
:“request_id my_request_123”
} '
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url:=“https://support.亚博zendesk.com/api/v2/any_channel/validate_token”
方法:=“职位”
要求的事情,犯错:=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://support.亚博zendesk.com/api/v2/any_channel/validate_token”)
.newBuilder();
RequestBody身体=RequestBody.创建(MediaType.解析(“application / json”),
”“”
”“”);
请求请求=新请求.构建器()
.url(urlBuilder.构建())
.方法(“职位”,身体)
.addHeader(“内容类型”,“application / json”)
.addHeader(“授权”,凭证.基本(“电子邮件”,“你的密码”))
.构建();
响应响应=客户端.newCall(请求).执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“职位”,
url:“https://support.亚博zendesk.com/api/v2/any_channel/validate_token”,
头:{
“内容类型”:“application / json”,
“授权”:的基本< auth-value >”,// Base64编码的"username:password"
},
};
axios(配置)
.然后(函数(响应){
控制台.日志(JSON.stringify(响应.数据));
})
.抓(函数(错误){
控制台.日志(错误);
});
Python
进口请求
url=“https://support.亚博zendesk.com/api/v2/any_channel/validate_token”
头={
“内容类型”:“application / json”,
}
响应=请求.请求(
“职位”,
url,
身份验证=(“<用户名>”,' <密码> '),
头=头
)
打印(响应.文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://support.亚博zendesk.com/api/v2/any_channel/validate_token”)
请求=网::HTTP::帖子.新(uri,“内容类型”:“application / json”)
请求.basic_auth“用户名”,“密码”
响应=网::HTTP.开始uri.主机名,uri.港口,use_ssl:真正的做|http|
http.请求(请求)
结束
示例响应(年代)
200好了
//状态200 OK
零
向Zendesk报告信道返回错误亚博
POST / api / v2 / any_channel / channelback / report_error
允许
- 管理员
请求参数
POST请求接受一个JSON对象参数,该参数包含有关问题的信息channelback.
名字 | 类型 | 要求 | 评论 |
---|---|---|---|
instance_push_id | 字符串 | 是的 | 数据将被推送到的帐户ID。当管理员设置帐户时,将此信息传递给集成服务 |
external_id | 字符串 | 是的 | 来自原始通道回传的外部资源的唯一标识符(字符串) |
描述 | 字符串 | 没有 | 人类可读的错误描述 |
request_id | 字符串 | 没有 | 请求的唯一标识符 |
响应格式
响应不包括响应体
代码示例
旋度
旋度- x“职位”“https://company.亚博zendesk.com/api/v2/any_channel/channelback/report_error”\
- hUser-Agent: Z亚博endesk SDK for Android\
- h“授权:承载51b8f8c894514abab0cf4705d414ffd2760589a5dcdb9d2bc812ca0635b402ec”\
- h“application / json内容类型:\
- h“接受:application / json”\
- d $”{
:“instance_push_id d448ef2f-8f51-4fbd-a5d1-9a53d2c8a3c1”,
“external_id”:“234”,
description:不支持HTML内容,
:“request_id my_request_123”
} '
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url:=“https://support.亚博zendesk.com/api/v2/any_channel/channelback/report_error”
方法:=“职位”
要求的事情,犯错:=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://support.亚博zendesk.com/api/v2/any_channel/channelback/report_error”)
.newBuilder();
RequestBody身体=RequestBody.创建(MediaType.解析(“application / json”),
”“”
”“”);
请求请求=新请求.构建器()
.url(urlBuilder.构建())
.方法(“职位”,身体)
.addHeader(“内容类型”,“application / json”)
.addHeader(“授权”,凭证.基本(“电子邮件”,“你的密码”))
.构建();
响应响应=客户端.newCall(请求).执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“职位”,
url:“https://support.亚博zendesk.com/api/v2/any_channel/channelback/report_error”,
头:{
“内容类型”:“application / json”,
“授权”:的基本< auth-value >”,// Base64编码的"username:password"
},
};
axios(配置)
.然后(函数(响应){
控制台.日志(JSON.stringify(响应.数据));
})
.抓(函数(错误){
控制台.日志(错误);
});
Python
进口请求
url=“https://support.亚博zendesk.com/api/v2/any_channel/channelback/report_error”
头={
“内容类型”:“application / json”,
}
响应=请求.请求(
“职位”,
url,
身份验证=(“<用户名>”,' <密码> '),
头=头
)
打印(响应.文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://support.亚博zendesk.com/api/v2/any_channel/channelback/report_error”)
请求=网::HTTP::帖子.新(uri,“内容类型”:“application / json”)
请求.basic_auth“用户名”,“密码”
响应=网::HTTP.开始uri.主机名,uri.港口,use_ssl:真正的做|http|
http.请求(请求)
结束
示例响应(年代)
200好了
//状态200 OK
零