与API提供者合作

API提供者允许您在没有UI的情况下使用Support SDK的所有功能。它们让您可以代表终端用户与Zendesk Suppor亚博t进行交互。

在开始之前

在开始之前,了解以下信息是有用的:

  • 所有API提供者都假定您已经正确初始化亚博而且支持,包括设置有效身份
  • API提供者通过请求中提供的回调异步返回结果
  • 每个回调块包含一个NSError参数,对于成功的API请求,该参数为nil

可用提供者

ZDKRequestProvider

  • 获取一个请求列表并创建新的请求
  • 获取给定请求的注释列表,并添加其他注释

ZDKHelpCenterProvider

  • 获取类别、节和文章
  • 搜索文章
  • 文章投票

ZDKUploadProvider

  • 上传附件
  • 删除附件

ZDKUserProvider

  • 添加或删除最终用户标记
  • 用户字段设置为最终用户

ZDKPushProvider

  • 为推送通知注册和注销客户端
  • 支持webhook和城市飞艇

查看API提供程序文档

您可以在Xcode或GitHub上查看以下提供者的文档。

  • ZDKRequestProvider.h
  • ZDKHelpCenterProvider.h
  • ZDKUploadProvider.h
  • ZDKAttachmentProvider.h
  • ZDKPushProvider.h
  • ZDKUserProvider.h

在Xcode中查看文档

  • 在Xcode中,使用快速打开快捷方式(转变+命令+O),然后输入您感兴趣的API提供者的名称。

在GitHub上查看文档

  1. 支持SDK IOS回购在Github上。
  2. 类型t然后输入您感兴趣的API提供者的名称。

请注意:ZDKPushProvider而且ZDKUserProvider定义为亚博ZendeskCoreSDK-Swift.h

ZDKRequestProvider

创建ZDKRequestProvider,如下所示:

斯威夫特

             
let provider = ZDKRequestProvider()

objective - c

             
ZDKRequestProvider提供者ZDKRequestProvider新

创建一个支持请求

创建ZDKRequestProvider提供程序后,可以使用该提供程序的都会方法来创建请求。

斯威夫特

             
var request = ZDKCreateRequest()请求。主题="My printer is on fire!"请求。请求Description = "The smoke is very colorful."请求。标签=["printer", "fire"]provider.createRequest(请求){结果,错误在

objective - c

             
ZDKCreateRequest请求ZDKCreateRequest新请求主题“我的打印机着火了!”请求requestDescription@“烟的颜色很丰富。”请求标签@@“打印机”@“火”提供者都会:请求withCallback:id的结果NSError错误如果错误//处理错误//记录错误ZDKLogger e:@“出问题了”其他的//处理成功

创建带有附件的请求

您可以使用提供者的都会方法创建带有附件的请求。

在下面的例子中,替换UploadResponse的ZDKUploadResponse检索uploadAttachment方法ZDKUploadProvider]。

斯威夫特

             
var request = ZDKCreateRequest()请求。attachments = UploadResponse请求。主题="My printer is on fire!"请求。请求Description = "The smoke is very colorful."provider.createRequest(请求){结果,错误在

objective - c

             
ZDKCreateRequest请求ZDKCreateRequest新请求附件@UploadResponse请求主题@“票据”主题请求requestDescription@“票据”描述提供者都会:请求withCallback:id的结果NSError错误如果错误//处理错误//记录错误ZDKLogger e:@“出问题了”其他的//处理成功

在创建请求时设置自定义字段

ZDKCreateRequest类有一个customFields数组属性,可用于在新请求中设置自定义字段的值。尽管最终用户可以在Help Center的web版本的票据表单中看到自定义字段,但这些字段不能在SDK的对话界面中显示。但是,您仍然可以使用SDK直接设置自定义字段的值。

Zendesk Supp亚博ort的管理员可以添加自定义票务字段到默认的票据表单。自定义字段可以只对代理可见,也可以对代理和最终用户都可见。

设置自定义票据字段的前提条件:

  • 在Help Center的web版本中,最终用户既可以看到自定义票据字段,也可以对其进行编辑。如果自定义字段值有多个单词,则将该值传递给CustomField应该被蛇壳化。Ze亚博ndesk管理员可以为您确认或设置这些设置。看到为代理和最终用户添加自定义票据字段在支持帮助中心

  • 您拥有ticket字段的id。要找到它,可以使用票务字段API或者你可以让Zendesk管理员在亚博Zendesk支持中获得它。管理员可以在字段的设置页面上获取id管理>管理>票字段

下面是一个设置自定义字段的例子:

斯威夫特

             
let customFieldOne = CustomField(fieldId: 1234567,值:"3")let customFieldTwo = CustomField(fieldId: 2345678, value: "some_text")let customFieldThree = CustomField(fieldId: 22334455, value: ["one", "two", "three"])let customFieldFour = CustomField(fieldId: 11223344,值:true)let request = ZDKCreateRequest()请求。customFields = [customFieldOne, customFieldTwo, customFieldThree, customFieldFour]ZDKRequestProvider()。都会(请求,withCallback: nil)

objective - c

             
ZDKCustomFieldcustomFieldOneZDKCustomField allocinitWithFieldId:@1234567价值:@“3”ZDKCustomFieldcustomFieldTwoZDKCustomField allocinitWithFieldId:@2345678价值:@“some_text”ZDKCustomFieldcustomFieldThreeZDKCustomField allocinitWithFieldId:@22334455价值:@@“一”@“两个”@“三”ZDKCustomFieldcustomFieldFourZDKCustomField allocinitWithFieldId:@11223344价值:@是的ZDKCreateRequest请求ZDKCreateRequest新请求customFields@customFieldOnecustomFieldTwocustomFieldThreecustomFieldFourZDKRequestProvider新都会:请求withCallback:

你也可以使用字典初始化自定义字段:

斯威夫特

             
let customFieldOne = CustomField(dictionary: ["id": 1234567, "value": "3"])let customFieldTwo = CustomField(dictionary: ["id": 2345678, "value": "some_text"])let customFieldThree = CustomField(dictionary: ["id": 22334455, "value": ["one", "two", "three"]])let customFieldFour = CustomField(dictionary: ["id": 11223344, "value": true])

objective - c

             
ZDKCustomFieldcustomFieldOneZDKCustomField allocinitWithDictionary:@@“id”:@1234567@“价值”:@“3”ZDKCustomFieldcustomFieldTwoZDKCustomField allocinitWithDictionary:@@“id”:@2345678@“价值”:@“some_text”ZDKCustomFieldcustomFieldThreeZDKCustomField allocinitWithDictionary:@@“id”:@22334455@“价值”:@@“一”@“两个”@“三”ZDKCustomFieldcustomFieldFourZDKCustomField allociinitWithDictionary:@@“id”:@11223344@“价值”:@是的

创建请求时选择自定义表单

如果您的Zend亚博esk Support实例支持自定义表单,你可以使用ticketFormId的财产ZDKCreateRequest类来指定将在代理界面中显示的表单,以显示与应用程序一起提交的门票。下面是一个示例:

斯威夫特

             
let request = ZDKCreateRequest()请求。ticketFormId = 1333

objective - c

             
ZDKCreateRequest请求ZDKCreateRequest新请求ticketFormId@1333

ZDKHelpCenterProvider

使用ZDKHelpCenterProvider很类似于使用ZDKRequestProvider.可以从列表中调用以下方法ZDKHelpCenterProvider

ZDKUploadProvider

使用ZDKUploadProvider很类似于使用ZDKRequestProvider.可以从列表中调用以下方法ZDKUploadProvider

ZDKUserProvider

使用ZDKUserProvider很类似于使用ZDKRequestProvider.可以从列表中调用以下方法ZDKUserProvider

ZDKPushProvider

使用ZDKPushProvider很类似于使用ZDKRequestProvider.可以从列表中调用以下方法ZDKPushProvider