所以我正在尝试对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,因为这是唯一缺少的部分。
答案 0 :(得分:0)
您必须签署整个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');
然后可以使用HTTP客户端(如axios)发送完整请求。 Bittrex要求在请求的apisign
标头中签名。
const axios = require('axios');
axios({
method: 'get',
url: account_balance_for_currency,
headers: {
apisign: signature
}
})
.then(function (response) {
console.log(response);
});