所以我正在尝试对bittrex进行API调用。似乎需要我签署 api 密钥。
我有
export const account_balance_for_currency = (currency) =>
`https://bittrex.com/api/v1.1/account/getbalance?apikey=${signedKey}¤cy=${currency}&nonce=${nonce()}`;
现在我的钥匙在process.env
上,秘密在process.env
尝试做
const signedKey = crypto
.createHmac('sha512', `${process.env.BITTREX_SECRET}`)
.update(`${process.env.BITTREX_API_KEY}`)
.digest('hex');
但它不起作用,我还没有找到一种很好的方法来按照我的意愿去做。
我一直在success: false, message: 'APISIGN_NOT_PROVIDED'
有什么建议/解决方案吗?我不想将现有的npm
包用于 api,因为这确实是唯一缺少的部分。
您必须对整个 API 调用进行签名,而不是对 API 密钥进行签名。
const Crypto = require('crypto');
const account_balance_for_currency = `https://bittrex.com/api/v1.1/account/getbalance?apikey=${process.env.BITTREX_API_KEY}¤cy=${currency}&nonce=${nonce()}`;
const signature = Crypto.createHmac('sha512', process.env.BITTREX_SECRET)
.update(account_balance_for_currency)
.digest('hex');
然后,您可以使用 axios 等 HTTP 客户端发送完整的请求。Bittrex要求在请求的apisign
标头中签名。
const axios = require('axios');
axios({
method: 'get',
url: account_balance_for_currency,
headers: {
apisign: signature
}
})
.then(function (response) {
console.log(response);
});