macOS10.12.5、Xcode8.3.3にて、bitFlyer APIのHTTP Private APIを利用したいです。
Private APIの呼び出しには認証が必要で、
・ACCESS-KEY
・ACCESS-TIMESTAMP
・ACCESS-SIGN
をHTTPリクエストヘッダに含めるとあります。
SWIFT3.0でJSONパラメータをHTTP POST
を参考にして、
import Foundation import PlaygroundSupport PlaygroundPage.current.needsIndefiniteExecution = true let urlString = "https://httpbin.org/post" var request = URLRequest(url: URL(string:urlString)!) // set the method(HTTP-POST) request.httpMethod = "POST" // set the header(s) request.addValue("application/json", forHTTPHeaderField: "Content-Type") // set the request-body(JSON) let params: [String: Any] = [ "foo": "bar", "baz": [ "a": 1, "b": 20, "c": 300 ] ] do{ request.httpBody = try JSONSerialization.data(withJSONObject: params, options: []) }catch{ print(error.localizedDescription) } // use NSURLSessionDataTask let task = URLSession.shared.dataTask(with: request, completionHandler: {data, response, error in if (error == nil) { let result = String(data: data!, encoding: .utf8)! print(result) } else { print("error") } }) task.resume()
見ているのですが、リクエストヘッダの記述の仕方がわかりません。
bitFlyerのページには、
var request = require('request'); var crypto = require('crypto'); var key = '{{ YOUR API KEY }}'; var secret = '{{ YOUR API SECRET }}'; var timestamp = Date.now().toString(); var method = 'POST'; var path = '/v1/me/sendchildorder'; var body = JSON.stringify({ product_code: 'BTC_JPY', child_order_type: 'LIMIT', side: 'BUY', price: 30000, size: 0.1 }); var text = timestamp + method + path + body; var sign = crypto.createHmac('sha256', secret).update(text).digest('hex'); var options = { url: 'https://api.bitflyer.jp' + path, method: method, body: body, headers: { 'ACCESS-KEY': key, 'ACCESS-TIMESTAMP': timestamp, 'ACCESS-SIGN': sign, 'Content-Type': 'application/json' } }; request(options, function (err, response, payload) { console.log(payload); });
のサンプルコードがあるのですが、このサンプルコードのoptions内のheaders:を記述するにはどのようにしたら良いのでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。