我想使用API并获取信息。
我的示例是Coinbase,但我认为这也将更广泛地应用并帮助其他人。
我有几条信息。
我知道我需要签名。
尽管网站上未显示(用于输入)“ passphrase”(密码)字段,但instructions似乎相对清晰。我现在假设为“。”
现在,我该如何使用该签名发布“ POST” ...
大概在签名字段中使用CoinbaseExchange.new.signature
我该如何格式化POST以在Ruby中执行该操作,即使用该签名?
网站摘要:
创建请求所有REST请求必须包含以下内容 标头:
CB-ACCESS-KEY The api key as a string.
CB-ACCESS-SIGN The base64-encoded signature (see Signing a Message).
CB-ACCESS-TIMESTAMP A timestamp for your request.
CB-ACCESS-PASSPHRASE The passphrase you specified when creating the API key.
All request bodies should have content type application/json and be valid JSON.
签署消息
require 'base64'
require 'openssl'
require 'json'
class CoinbaseExchange
def initialize(key, secret, passphrase)
@key = key
@secret = secret
@passphrase = passphrase
end
def signature(request_path='', body='', timestamp=nil, method='GET')
body = body.to_json if body.is_a?(Hash)
timestamp = Time.now.to_i if !timestamp
what = "#{timestamp}#{method}#{request_path}#{body}";
# create a sha256 hmac with the secret
secret = Base64.decode64(@secret)
hash = OpenSSL::HMAC.digest('sha256', secret, what)
Base64.strict_encode64(hash)
end
end