签署API密钥(bittrex api)[NODE]

时间:2018-05-20 06:10:01

标签: node.js api signed

所以我正在尝试对bittrex进行API调用。似乎需要我签署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 :(得分: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}&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);
  });