поэтому я пытаюсь вызвать API-интерфейс bittrex. Кажется, мне нужно подписать ключ 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');
Затем вы можете отправить полный запрос, используя HTTP-клиент, например axios. Bittrex требует наличия подписи в заголовке запроса apisign.
const axios = require('axios');
axios({
method: 'get',
url: account_balance_for_currency,
headers: {
apisign: signature
}
})
.then(function (response) {
console.info(response);
});