Reality Keysと連携するiOSアプリをつくる 第3回 契約セットアップ
はじめに
前回、契約のセットアップに必要なRunKeeperのユーザーIDを取得しました。今回はそれを使って契約セットアップAPIを実行します。
目次
- 契約セットアップAPI実行
契約セットアップAPI実行
契約セットアップAPIの仕様については過去記事をみてください。
HTTPリクエストはAlamofire、JSONパースはSwiftyJSONを使っています。
@IBAction func setupOneKm(){ let userId = NSUserDefaults.standardUserDefaults().stringForKey("runkeeper_user_id") var formatter: NSDateFormatter = NSDateFormatter() formatter.dateFormat = "yyyy-MM-dd" let settlement_date: String = formatter.stringFromDate(NSDate()) let params = [ "user_id" : userId!, "activity" : "running", "measurement" : "total_distance", "comparison" : "ge", "goal" : "1000", "settlement_date" : settlement_date, "objection_period_secs" : "604800", "accept_terms_of_service" : "current", "use_existing" : "0" ] MRProgressOverlayView.showOverlayAddedTo(self.view, animated: true); Alamofire.request(.POST, "https://www.realitykeys.com/api/v1/runkeeper/new", parameters: params) .responseJSON { (request, response, data, error) in MRProgressOverlayView.dismissOverlayForView(self.view, animated: true) let contract = Contract() let json = JSON(data!) if let activity = json["activity"].string { contract.activity = activity } if let created_datetime = json["created_datetime"].string { contract.created_datetime = created_datetime } (省略) if let yes_pubkey = json["yes_pubkey"].string { contract.yes_pubkey = yes_pubkey } let stb = UIStoryboard(name: "Main", bundle: nil) let setupResultViewController = stb.instantiateViewControllerWithIdentifier("setup_result") as SetupResultViewController setupResultViewController.contract = contract self.navigationController?.pushViewController(setupResultViewController, animated: true) } }
こんな感じ
P2SHアドレスに必要なYES、NOの公開鍵を取得できました。
no_pubkey = "02c0b9fba37cfd406874d34a8b1ce133f9ff5b1915f9e27ec07dff12fefc7611ec" yes_pubkey = "02a5d4a751923c4128332df96887e188c86418820c437b0891fa838cc4ad104a58"
まとめ
P2SHアドレスを作成するための情報が整いましたので次回やります。
SwiftのオプショナルとJSONの扱いがよく分かってません..
参考
画面のカラースポイトにめっちゃ便利なMac標準ツール「DigitalColor Meter」
http://cflat-inc.hatenablog.com/entry/2014/10/14/074454
ウイルスバスター for Mac がインストールされた環境において、Xcode の iOS8 Simulator のネットワーク接続が切れてしまう問題が発生する そういえば以前ウイルスバスターは、time machineの同期が遅くなる原因にもなっていた。
SwiftでiOSアプリ開発をしてみて(#^ω^)ピキピキ な点4つ(2014/12現在)