前提・実現したいこと
Rubyを使いAPI経由で取引所で注文をしようと思っています。
しかし、どこを修正しても次のようなエラーメッセージが出てしまいます。(GETを使った残高取得はうまくいきました)
なにが原因でAPIのユーザー認証ができていないのでしょうか?わかる方ご教授頂けますと助かります。
発生している問題・エラーメッセージ
{"error"=>{"code"=>1002, "message"=>"Authorization failed", "description"=>""}}
該当のソースコード
Ruby
1key = API_KEY_HB 2secret = API_SECRET_HB 3 4base = "https://api.hitbtc.com" 5path = '/api/1/trading/new_order' 6timestamp = (DateTime.now.strftime('%Q')).to_s 7postData = "clientOrderId=#{timestamp} 8 &symbol=BTCUSD 9 &side=buy 10 &price=8000 11 &quantity=0.003 12 &type=limit" 13 14url = path + "?nonce=" + timestamp + "&apikey=" + key 15message = url + postData 16 17signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha512"), secret, message) 18 19header = {"X-Signature" => signature, } 20 21uri = URI.parse(base+url) 22options = Net::HTTP::Post.new(uri.request_uri, header) 23https = Net::HTTP.new(uri.host, uri.port) 24https.use_ssl = true 25response = https.request(options,message) 26response_hash = JSON.parse(response.body) 27puts response_hash
試したこと
APIのキーとシークレット(API_KEY_HBとAPI_SECRET_HB)が正しいことは何度も確認しました。
上手くいったGETの残高取得との違いは、次の3点です
・postDataを入れている
・Net::HTTP::Postにした
・https.request(options,message)にした。
補足情報(FW/ツールのバージョンなど)
APIドキュメントは次になりますが、情報が少なく参考になりません。
https://github.com/hitbtc-com/hitbtc-api/blob/master/APIv1.md
また、Javaのサンプルコード等も見てみましたが、Rubyと構成が違うようでレバレッジできませんでした。
https://gist.github.com/hitbtc-com/9808530
https://gist.github.com/hitbtc-com/2765a1431a2384975c01
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/05/16 11:04
2018/05/16 15:15