2017-01-31 10 views
0

PodioKit(OSXで2.0.0)を使用する私は、電子メール/電話フィールドが設定された新しいアイテムを作成するのに苦労しています。PodioKitでアイテムの電子メール/電話を設定するには

フィールドの文字列が必要です(または例外がスローされます)が、文字列として電子メールを送信すると400エラーが発生します。

Podioでは、フィールドには自宅、仕事、その他のどのような電子メール/電話でタグ付けすることができるので、電子メール/電話を正しく指定する方法がわかりません。私は

答えて

1

PodioKitは、作業中のままとなり、残念ながら電子メールフィールドは、まだモデル層またはPKTItem便利なメソッドで明示的にサポートされていません... PKTContactInfoか何かのような特別なクラスを参照してくださいすることはできません。このような機能をサポートするようにSDKを改善するまでは、PKTItemsApirequestToCreateItemInAppメソッドを使用してこの制限を回避し、リクエストのパラメータを自分で作成することができます。メールフィールドとアイテムの作成

- PodioKit 2.0

ここだけのタイトルと電子メールフィールド(スウィフト3.0)でアプリケーション内のアイテムを作成する例です:あなたのよう

let valueDictionary:[String:String] = ["type":"work", "value":"[email protected]"] 
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は、home,work,otherのいずれかの値になります。

アイテムが複雑で、すべてのフィールドを手動で挿入したくない場合は、簡易メソッドを使用してアイテムを作成し、上記の例のようにアイテムの電子メールフィールドを更新することができます。

編集:電子メールのフィールドで、既存の項目を更新 - PodioKit 2.0

既存のアイテムを更新するには、PKTItemsAPI方法requestToUpdateItemWithIDを使用することができます。この要求は、アイテムIDが必要であることに注意してください作成アイテム要求がアプリケーションIDが必要ですへのに対し:迅速なコミュニティ応答のための不完全な機能を備えた2.0.0のSDKバージョンの

let valueDictionary:[String:String] = ["type":"work", "value":"[email protected]"] 
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.") 
    } 
} 
+0

のTSK TSKが、イェーイを! 便利な方法で作成されたアイテムの編集方法を表示できますか?私は、電子メールフィールドが辞書ではなく文字列であることを期待しているので、私が試した何かが原因の例外として考え出すことができないようです。 – CMash

+0

アイテムのメールフィールドを 'PKTItem'の便利なメソッドで作成または更新することはできません。これらのメソッドは、各フィールドタイプを期待値にマップする基底のモデルレイヤーに依存しています.Emailフィールドはサポートされていません(http://podio.github.io/podio-objc/fields/)。 )。あなたができることはあなたのアイテムを作成してから、 'PKTItemsAPI'を使って更新リクエストを作成することです - 上記の答えにいくつかのサンプルコードを追加しますが、提供されている例とほぼ同じです。 –

+0

ありがとうございましたKenneth、私はあなたが便利な方法で項目を作成し、それを電子メールのAPIファッジに送る前にあなたが考えていたと思っていましたが、すべての作業は大丈夫ですが、助けてくれてありがとうございました! – CMash

関連する問題