Подписание ключа API (bittrex api) [NODE] - PullRequest
0 голосов
/ 20 мая 2018

, поэтому я пытаюсь сделать вызов API для bittrex.Кажется, мне нужно подписать ключ API.

У меня есть

export const account_balance_for_currency = (currency) =>
    `https://bittrex.com/api/v1.1/account/getbalance?apikey=${signedKey}&currency=${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, поскольку это действительно единственная недостающая часть.

1 Ответ

0 голосов
/ 12 апреля 2019

Вы должны подписать весь вызов 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}&currency=${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);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...