通过VBA HTTP Post将参数传递给Gdax API

时间:2018-03-24 15:00:04

标签: vba rest gdax-api

在尝试与GDAX API进行交互时,我在vba中遇到了问题。

我收到此错误:{“message”:“需要product_id”}

我无法在WinHttp.WinHttpRequest.5.1中的“POST”命令中传递我的product_id。似乎没有任何作用:

我尝试在URL之后添加?product_id = BTC-EUR作为方法选项(这适用于GET语句) 我尝试在发送后添加“product_id = BTC-EUR” 我尝试使用JsonString =“{”“size”“:”“0.01”“,”“price”“:”“”0.100“”,“”side“”:“”buy“”,“”product_id“”:“ “BTC-USD”“}”这作为postdata

有谁知道,如何传递这些论点?

这是我正在使用的代码,适用于所有其他未通过参数的经过身份验证的语句。

TradeApiSite = "https://api-public.sandbox.gdax.com"

SignMsg = NonceUnique & UCase(HTTPMethod) & "/" & Method & MethodOptions
APIsign = Base64Encode(ComputeHash_C("SHA256", SignMsg, Base64Decode(secretkey), "RAW"))

' Instantiate a WinHttpRequest object and open it
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
objHTTP.Open UCase(HTTPMethod), TradeApiSite & "/" & Method & MethodOptions, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.setRequestHeader "CB-ACCESS-KEY", apikey
objHTTP.setRequestHeader "CB-ACCESS-SIGN", APIsign
objHTTP.setRequestHeader "CB-ACCESS-TIMESTAMP", NonceUnique
objHTTP.setRequestHeader "CB-ACCESS-PASSPHRASE", passphrase

objHTTP.Send '(postdata)

1 个答案:

答案 0 :(得分:0)

在深入了解danpaquin / gdax-python如何在此处进行身份验证{} 3}

后想出来
  1. 您希望将JSON字符串作为您描述的帖子数据发送
  2. Content-Type标头应设置为application / json
  3. 帖子数据需要附加到预哈希(在你的情况下是SignMsg)
  4. 第2步非常重要,因为有了它,GDAX似乎无法读取你的帖子数据 - 所以你得到了Requires product_id错误。如果在没有步骤3的情况下执行步骤2,则会出现无效的签名错误