Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swagger Client API key authentication

I have to authenticate to Bitmex API using my Api key but I got this error

Unable to connect: TypeError: Cannot read property 'add' of undefined

'use strict';
var SwaggerClient = require("swagger-client");
var _ = require('lodash');
var BitMEXAPIKeyAuthorization = require('./lib/BitMEXAPIKeyAuthorization');

require('dotenv').config();

new SwaggerClient({
  // Switch this to `www.bitmex.com` when you're ready to try it out for real.
  // Don't forget the `www`!
  url: 'https://testnet.bitmex.com/api/explorer/swagger.json',
  usePromise: true
})
.then(function(client) {
  //console.log(client);
  // Comment out if you're not requesting any user data.
  client.clientAuthorizations.add("apiKey", new BitMEXAPIKeyAuthorization(process.env.BITMEX_API_KEY, process.env.BITMEX_API_SECRET));

  // Print client capabilities
  //

})
.catch(function(e) {
  console.error("Unable to connect:", e);
})

Nodejs connector: https://github.com/BitMEX/api-connectors

like image 459
sparkle Avatar asked Oct 28 '22 21:10

sparkle


1 Answers

You're using the latest version of the client, which doesn't do authorizations that way: https://github.com/swagger-api/swagger-js/blob/903569948d5a5c718d7b87d6832a672de4e76afc/docs/MIGRATION_2_X.md#authorizations

new SwaggerClient({
    // Switch this to `www.bitmex.com` when you're ready to try it out for real.
    // Don't forget the `www`!
    url: 'https://testnet.bitmex.com/api/explorer/swagger.json',
    usePromise: true,
    authorizations: {
        apiKey: new BitMEXAPIKeyAuthorization(process.env.BITMEX_API_KEY, process.env.BITMEX_API_SECRET)
    }
})
.then(client => {
    // Do whatever with client
})
.catch(function(e) {
console.error("Unable to connect:", e);
})
like image 61
Andy Ray Avatar answered Nov 15 '22 09:11

Andy Ray