ruby 2.1.3
Rails 4.2.3
ローカルでのPCはmac
sakuraはVPSのcentos
nginx1.8.0
unicorn
API提供先にてnode.jsで書かれたサンプルがあり、それを参考にRailsにて実行したいと考えております。
現在
rails
1status":-500,"error_message":"Invalid signature","data":null
signatureが無いよと返ってきます。
signatureの書き方の確認をお願い出来ませんでしょうか?
signatureのみのテストを行った時は値が返ってくるのでnullは無いと思うのですが。。。
node.jsで書かれたサンプル
node.js
1var key = '{{ YOUR API KEY }}'; 2var secret = '{{ YOUR API SECRET }}'; 3 4var timestamp = Date.now().toString(); 5var method = 'POST'; 6var path = '/v1/me/XXXXX'; 7 8var text = timestamp + method + path; 9var signature = crypto.createHmac('sha256', secret).update(text).digest('hex'); 10 11var options = { 12 url: 'https://api.hogehoge.jp' + path, 13 method: method, 14 body: body, 15 headers: { 16 'ACCESS-KEY': key, 17 'ACCESS-TIMESTAMP': timestamp, 18 'ACCESS-SIGN': signature, 19 'Content-Type': 'application/json' 20 } 21}; 22
上記を参考にRailsにて実行
rails
1key = "YYYYYYYYYYYY" 2secret = "XXXXXXXXXXXXX" 3 method = "POST" 4 path = "/v1/me/XXXXX" 5 timestamp = Time.now.to_i.to_s 6 text = timestamp + method + path 7 signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), secret, text) 8 headers = { 9 "ACCESS-KEY" => key, 10 "ACCESS-TIMESTAMP" => timestamp, 11 "ACCESS-SIGN" => signature 12 } 13 uri = "https://api.hogehoge.jp" + path 14 15https = Net::HTTP.new(uri.host, uri.port) 16 https.use_ssl = true 17 response = https.start { 18 https.get(uri.request_uri, headers) 19 } 20
railsの結果
rails
1status":-500,"error_message":"Invalid signature","data":null
signature又はhttps.get(uri.request_uri, headers)など間違った書き方しておりますでしょうか?
宜しくお願いします。
あなたの回答
tips
プレビュー