Twilio の REST Api と Alamofire を使用して、作成時に特定の属性をチャネルに設定しようとしています ( https://www.twilio.com/docs/api/ip-messaging/rest/channels#action-create )
let parameters : [String : AnyObject] = [
"FriendlyName": "foo",
"UniqueName": "bar",
"Attributes": [
"foo": "bar",
"bar": "foo"
],
"Type": "private"
]
Alamofire.request(.POST, "https://ip-messaging.twilio.com/v1/Services/\(instanceSID)/Channels", parameters: parameters)
.authenticate(user: user, password: password)
.responseJSON { response in
let response = String(response.result.value)
print(response)
}
そのコードを使用すると、FriendlyName foo と UniqueName bar を使用してチャネルが作成されたが、そのチャネルには属性が設定されていないという応答が返されました。
Alamofire github ( https://github.com/Alamofire/Alamofire ) を見ると、JSON でエンコードされたパラメーターを使用して POST 要求を送信する方法があることがわかります。だから私はこれを試しました:
let parameters : [String : AnyObject] = [
"FriendlyName": "foo",
"UniqueName": "bar15",
"Attributes": [
"foo": "bar",
"bar": "foo"
],
"Type": "private"
]
Alamofire.request(.POST, "https://ip-messaging.twilio.com/v1/Services/\(instanceSID)/Channels", parameters: parameters, encoding: .JSON)
.authenticate(user: user, password: password)
.responseJSON { response in
let response = String(response.result.value)
print(response)
}
リクエストに "encoding: .JSON" を追加すると、属性が設定されていないだけでなく、FriendlyName と UniqueName が URL エンコード パラメータを使用して正しく設定されていた以前とは異なり、nil であったことが応答に示されます。
「パラメーター」で間違った属性を設定していますか? Twilio のドキュメントによると、Attributes は「任意のデータを保存するために使用できるオプションのメタデータ フィールドです。このフィールドでは処理や検証は行われません。」
助けていただければ幸いです:)