如何解决使用Google Apps脚本通过Coinbase Pro API进行POST请求
我正在使用Coinbase Pro API,虽然它对于GET请求运行良好,但是当我尝试通过POST请求下订单时却收到了“无效签名”。我怀疑这可能与邮件的“正文”有关,因为这与GET中“正文”为空的唯一区别。
我想知道是否有人可以帮助我。
false
解决方法
未经测试的建议,我建议在您的代码中更改此位(在SignAndCallAPI
函数中):
var options = {
'method' : method,'muteHttpExceptions' : true,'headers' : {
'Content-Type': 'application/json','CB-ACCESS-KEY' : globalvars_CB.apikey,'CB-ACCESS-SIGN' : hmac,'CB-ACCESS-TIMESTAMP' : timestamp,'CB-ACCESS-PASSPHRASE' : globalvars_CB.passphrase,}
}
收件人:
const options = {
method: method,payload: body,contentType: 'application/json',muteHttpExceptions: true,headers: {
'CB-ACCESS-KEY': globalvars_CB.apikey,'CB-ACCESS-SIGN': hmac,'CB-ACCESS-TIMESTAMP': timestamp,'CB-ACCESS-PASSPHRASE': globalvars_CB.passphrase,},};
由于以下原因:
-
尽管您将
body
传递给SignAndCallAPI
函数,并在HMAC计算中使用了body
,但是似乎没有在发送的POST请求中实际包含body
到服务器。我期望将其视为您的payload
对象的options
属性的值。 -
UrlFetchApp
文档(https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetchurl,-params)似乎表明Content-Type
应该在contentType
对象的options
属性中指定(相对明确包含一个Content-Type
标头)。 -
我没有详细查看Coinbase API文档(https://docs.pro.coinbase.com/#place-a-new-order),但是
body
似乎还可以。您还需要确保CB-ACCESS-SIGN
请求标头的HMAC计算如文档(https://docs.pro.coinbase.com/#signing-a-message)中所述。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。