2014-07-19 34 views
0

我一直在努力但来认证bitstamp API,我不断收到以下错误:F#网页认证

"{\"error\": \"Missing key, signature and nonce parameters\"}"

我写这样做的代码如下:

let nounce = System.DateTime.Today.Ticks 
let hexdigest (bytes : byte[]) = 
    let sb = System.Text.StringBuilder() 
    bytes |> Array.iter (fun b -> b.ToString("X2") |> sb.Append |> ignore) 
    string sb 
let signature = 
    use hmac = new HMACSHA256(System.Text.Encoding.ASCII.GetBytes(stampsecret)) 
    hmac.ComputeHash(mes) 
    |> hexdigest 

我打电话与该网站的以下内容:

let ordersBTCbuy()= 
    Http.Request("https://www.bitstamp.net/api/buy", meth="Post", query=["key", stampkey; "signature", signature.ToLower(); "nonce", string(nounce); "amount", "1"; "price", string(convertB)]) 

到API的参考可以在这里找到:https://www.bitstamp.net/api/

更新我已经改变了Web地址:

让ordersBTCbuy()= Http.Request( “https://www.bitstamp.net/api/buy/”,甲基= “邮报”,查询= [ “钥匙”,stampkey; “signature”,signature.ToLower(); “nonce”,字符串(nounce); “金额”,“1”; “价格”,字符串(convertB)])

我的新问题是现在的签名我的代表是64个字符长和大写,但我似乎仍然有一个错误。

回答

1

创建POST请求时。你的键值对需要进入主体。

要做到这一点使用FSharp数据做到以下几点:

let postBody = FormValues([ "key", stampkey; "signature", signature.ToLower(); "nonce", string(nounce); "amount", "1"; "price", string(convertB)]) 

let ordersBTCbuy()= 
    Http.Request("https://www.bitstamp.net/api/buy", httpMethod="Post", body=postBody) 
+0

谢谢,我已经更新了我的代码但仍然得到同样的问题 – user3623025