PodioKit中如何设置项目的email/phone

How to set an item's email/phone in PodioKit

使用 PodioKit(OSX 上的 2.0.0)我正在努力创建一个填充了 email/phone 字段的新项目。

它需要该字段的字符串(或者抛出异常)但是给它一个电子邮件作为字符串我得到一个 400 错误。

在跑道中,字段可以被标记为email/phone 的类型,例如家庭、工作、其他等等,所以我不确定如何正确指定email/phone。我看不到任何特殊的 类,例如 PKTContactInfo 或任何东西...

PodioKit 仍然是 work-in-progress,不幸的是,Email 字段在模型层或 PKTItem 便捷方法中尚未明确支持。在改进 SDK 以支持此类功能之前,您可以使用 PKTItemsApirequestToCreateItemInApp 方法并自行为请求构建参数来解决此限制。

创建带有电子邮件字段的项目 - PodioKit 2.0

下面是在只有标题和电子邮件字段的应用程序中创建项目的示例 (Swift 3.0):

let valueDictionary:[String:String] = ["type":"work", "value":"test@podio.com"]
let fieldDictionary:[String:Any] = ["email":valueDictionary, "title":"r3-d6"]

let createItemRequest = PKTItemsAPI.requestToCreateItemInApp(withID: 17206313, fields: fieldDictionary, files: nil, tags: nil)

PKTClient.current().perform(createItemRequest).onComplete { response, error in
  if error == nil {
    print("Save successful!")
  } else {
    print("Error saving new item.")
  }
}

如您在问题中所述,电子邮件字段的 type 可以是以下任何值:homeworkother.

如果您的项目更复杂并且您不想手动插入所有字段,您可以使用便捷方法创建项目,然后更新项目的电子邮件字段,类似于上面的示例。

编辑:使用电子邮件字段更新现有项目 - PodioKit 2.0

要更新现有项目,您可以使用 PKTItemsAPI 方法 requestToUpdateItemWithID。请注意,此请求需要项目 ID,而创建项目请求需要 App ID:

let valueDictionary:[String:String] = ["type":"work", "value":"updatetest@test.info"]
let fieldDictionary:[String:Any] = ["email":valueDictionary, "title":"r5-d5"]

let updateItemRequest = PKTItemsAPI.requestToUpdateItem(withID: 383626238, fields: fieldDictionary, files: nil, tags: nil)

PKTClient.current().perform(updateItemRequest).onComplete { response, error in
  if error == nil {
    print("Completed update!")
  } else {
    print("Error updating item.")
  }
}