指定应用程序需求
一个应用程序可能依赖于一个或多个Zendesk资源,如票务字段或目亚博标,以正常工作。亚博电脑端当你创建一个应用时,你可以将这些资源声明为需求。亚博电脑端当管理员安装应用程序时,Zendesk在管理员的帐户中创建应用程亚博序所需的资源。亚博电脑端应用需求只适用于支持和销售应用。
声明应用需求
在a中声明需求requirements.json应用程序根目录下的文件。
声明应用需求
在应用程序的根目录中,创建一个名为requirements.json。
在文本编辑器中,打开requirements.json。在该文件中,创建一个根级JSON对象。
对象中的每个属性表示一种资源类型。您可以使用自定义属性键和相关的资亚博电脑端源模式声明该类型的资源。有关支持的属性和资源模式,请参见支持的资源类型。
例如requirements.json文件声明一个目标、一个webhook和两个票证字段作为需求。每个资源都有一个自定义属性键,例如
an_email_target
或number_of_issues
。{
“目标”:{
“an_email_target”:{
“标题”:“邮件目标示例”,
“类型”:“email_target”,
“电子邮件”:”(电子邮件保护)”,
“主题”:“你好,从这个目标!”
}
},
“人”:{
“an_example_webhook”:{
“身份验证”:{
“add_position”:“头”,
“数据”:{
“密码”:“hello_123”,
“用户名”:“john_smith”
},
“类型”:“basic_auth”
},
“端点”:“https://example.com/status/200”,
“http_method”:“获得”,
“名称”:“一个webhook示例”,
“request_format”:“json”,
“状态”:“活跃”,
“订阅”:[“conditional_ticket_events”],
“signing_secret”:{
“算法”:“SHA256”,
“秘密”:“abcdefghijklmnopqrstuvwxyz”
}
}
},
“ticket_fields”:{
“support_description”:{
“类型”:“文本”,
“标题”:“支持描述”
},
“number_of_issues”:{
“类型”:“整数”,
“标题”:“问题数量”
}
}
}
支持的资源类型
requirements.json支持以下顶级属性和资源模式。
资源类型属性 | 资源模式 |
---|---|
自动化 | 的POST有效载荷自动化API端点 |
channel_integrations | 看到通道安装程序 |
custom_objects | 看到自定义对象应用程序需求 |
宏 | 的POST有效载荷宏API端点 |
organization_fields | 的POST有效载荷organization_fields API端点 |
目标 | 的POST有效载荷目标API端点 |
ticket_fields | 的POST有效载荷ticket_fields API端点 |
触发器 | 的POST有效载荷触发器API端点 |
user_fields | 的POST有效载荷user_fields API端点 |
视图 | 的POST有效载荷视图API端点 |
人则 | 的POST有效载荷webhooks API端点 |
遗留自定义对象应用程序需求
你可以使用custom_objects
要声明的属性遗留自定义对象类型和遗留自定义对象关系类型作为需求。该属性支持两个相关的子属性:custom_object_types
和custom_object_relationship_types
。
遗留自定义对象类型需求
要声明遗留自定义对象类型,请使用custom_object_types
财产。该属性接受一个JSON对象数组。对象使用相同的结构遗留自定义对象类型资源,但省略数据
关键。每个应用程序可以需要多达50个传统自定义对象类型。
例子:
{
“custom_objects”:{
“custom_object_types”:[
{
“关键”:“app_event_logs”,
“模式”:{
“属性”:{
“位置”:{
“类型”:“字符串”,
“描述”:“位置”
},
“事件”:{
“类型”:“字符串”,
“描述”:“事件”
}
},
“要求”:[“位置”,“事件”]
}
}
]
}
}
遗留自定义对象关系类型需求
要声明遗留自定义对象关系类型,请使用custom_object_relationship_types
财产。该属性接受一个JSON对象数组。对象使用相同的结构遗留关系类型资源,但省略数据
关键。
例子:
{
“custom_objects”:{
“custom_object_relationship_types”:[
{
“关键”:“ticket_has_many_app_event_logs”,
“源”:“战:票”,
“目标”:[“app_event_logs”]
}
],
“custom_object_types”:[
{
“关键”:“app_event_logs”,
“模式”:{
“属性”:{
“位置”:{
“类型”:“字符串”,
“描述”:“位置”
},
“事件”:{
“类型”:“字符串”,
“描述”:“事件”
}
},
“要求”:[“位置”,“事件”]
}
}
]
}
}
避免冲突
中的资源分配自定义属性键时亚博电脑端requirements.json,确保使用唯一的名称空间。如果应用程序的需求与帐户上的现有资源冲突,则应用程序将安装失败。亚博电脑端
例如,一个应用程序需要一个标题为“Description”的票证字段requirements.json。如果一个帐户已经有一个标题为“描述”的票证字段,则尝试在该帐户上安装应用程序将失败。
在应用程序需求中传递安装设置值
你可以使用{{设置。SETTING_NAME}}
传递参数的语法安装设置价值requirements.json。在大多数情况下,管理员在应用程序安装期间指定此设置值。
例如manifest.json文件创建名为email_to_notify
。要安装应用程序,管理员必须为该设置指定一个值。
{
…
“参数”:[
{
“名称”:“email_to_notify”,
“类型”:“文本”,
“要求”:真正的
},
…
]
}
以下requirements.json文件声明所需的电子邮件目标。目标器使用的值email_to_notify
设置它的一个属性。
{
“目标”:{
“an_email_target”:{
“标题”:“发送通知邮件”,
“类型”:“email_target”,
“电子邮件”:“{{setting.email_to_notify}}”,
“主题”:“嘿,出事了!”
}
}
}
依赖的应用需求
某些必需的资源,如触发器或视亚博电脑端图,可能依赖于中的其他资源requirements.json。在这些情况下,在等效API有效负载使用资源id的地方使用资源的属性键。
例如requirements.json文件声明了一个电子邮件目标和一个触发器。触发器引用电子邮件目标的属性键。
{
“目标”:{
“an_email_target”:{
“标题”:“电子邮件目标示例”,
“类型”:“email_target”,
“电子邮件”:”(电子邮件保护)”,
“主题”:“你好,从这个目标!”
}
},
“触发”:{
“email_on_ticket_solved”:{
“标题”:"电子邮件解决机票问题",
“所有”:[
{
“字段”:“状态”,
“运营商”:“是”,
“价值”:“解决”
}
],
“行动”:[
{
“字段”:“notification_target”,
“价值”:[“an_email_target”,{{票”票。Id}}已更新。”]
}
]
}
}
}
创建一个只满足需求的应用
仅限需求的应用是指只在一个帐户中创建所需资源的应用。亚博电脑端该应用程序不做任何其他事情。你只能将需求型应用安装为支持型应用。
创建一个只满足需求的应用
创建一个新应用程序的启动文件创建Zendesk应用程序的启动文件亚博。
在文本编辑器中,打开应用程序manifest.json文件并进行以下更改:
- 添加
“requirementsOnly”:真的
财产。 - 添加
“singleInstall”:真的
财产。一个帐户一次只能有一个活动安装的需求应用程序 - 删除
位置
财产 - 删除
frameworkVersion
财产。需求型应用程序不指定框架版本。
例子:
{
“名称”:“示例应用程序”,
“作者”:{
“名称”:“John Doe”,
“电子邮件”:”(电子邮件保护)”
},
“defaultLocale”:“en”,
“私人”:假,
“版本”:“1.0”,
“requirementsOnly”:真正的,
“singleInstall”:真正的
}
- 添加
在应用程序的根目录中,创建一个requirements.json文件。在文件中,指定要创建的资源。亚博电脑端有关详情,请参阅声明应用需求。
更新或删除需求
你可以更改应用程序的requirements.json文件来更新或删除应用程序创建的某些类型的资源。亚博电脑端
资源类型 | 可更新的 | 可删除的 |
---|---|---|
自动化 | 是的 | 是的 |
频道的集成 | 没有 | 没有 |
自定义对象类型 | 是的 | 是的 |
自定义对象关系类型 | 没有 | 是的 |
宏 | 是的 | 是的 |
组织领域 | 没有 | 没有 |
目标 | 是的 | 是的 |
票字段 | 没有 | 没有 |
触发器 | 是的 | 是的 |
用户字段 | 没有 | 没有 |
的观点 | 是的 | 是的 |
人则 | 是的 | 是的 |
要更新对私有应用程序的要求,请将新版本的应用程序上传到您的帐户。这个新版本应该包含您的更新requirements.json文件。要使用ZCLI更新私有应用,请参见更新私有Zendesk应用程序亚博。
要更新公共应用的需求,首先要测试你的更改,以确保它们不会对你的应用用户产生负面影响。要做到这一点,我们建议在测试帐户中将应用作为私有应用进行测试。如果您的更改符合预期,请重新提交公共应用程序以获得批准。
一旦应用更新了,它的需求改变就不能恢复了。一个应用程序更新可能需要5分钟。
以下requirements.json示例更新所需的用户字段资源。亚博电脑端
从
{
“user_fields”:{
“user_city”:{
“类型”:“文本”,
“标题”:“城市”
}
}
}
来
{
“user_fields”:{
“user_city”:{
“类型”:“文本”,
“标题”:“城市”
},
“user_address”:{
“类型”:“文本”,
“标题”:“地址”
}
}
}
从应用程序访问需求
你可以使用Zendesk App亚博s框架(ZAF)客户端get ()方法访问Support或Sell应用中的应用需求。要访问需求,调用client.get(要求:标识符)
。取代标识符
中资源的属性键requirements.json。
例子:
常量客户端=ZAFClient。初始化();
客户端。得到(“要求:number_of_issues”)。然后((数据)= >{
控制台。日志(数据);
});
有关更多信息,请参见要求在ZAF核心API文档中。
卸载或禁用应用程序
如果管理员禁用了一个应用程序,Zendesk会禁用应用程序亚博中的任何资源亚博电脑端requirements.json文件,包括:
- 频道的集成
- 自定义对象类型
- 自定义对象关系类型
如果管理员卸载了一个应用程序,Zendesk会删除该应用程序列亚博表中列出的所有资源亚博电脑端requirements.json文件。如果资源是自定义字段,Zendesk将删除该字段的所有数据。亚博然而,这些数据在票务审计中仍然可用。