2014-07-19 56 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