Первое что пришло в голову. Хотел колбек еще найти, но с ходу не нашел.overline.network.xml
Авторизация по API с отправкой HTTP-заголовка. Помогите кто может!
-
@olegtut said in Авторизация по API с отправкой HTTP-заголовка. Помогите кто может!:
Чувак, это слишком сложно. Здесь в основном дают советы по правильной настройке функционала БАС, по корректной логике выполнения скрипта, отладке ошибок. Но ты превзашел всех: ты хочешь, чтобы мы изучили документацию API сайта и дали готовое решение? Иногда нужно учиться самому. И прежде, чем приступать к запросам на HTTP, изучи, как это впринципе работает, тогда не будет возникать вопросов на этот счет.
С простым API мне понятно как работать, уже писал скрипты: API-ключ указывается в URL ссылке и дополнительные параметры. Затем просто выполняем переход по ссылке и получаем ответ в формате JSON. На некоторых биржах так и сделано, но только не на Битмекс.
Рад бы изучить. Жаль уроки у автора только для премиум пользователей, я таким не являюсь. Мож поделитесь?@root said in Авторизация по API с отправкой HTTP-заголовка. Помогите кто может!:
Вы о чем вообще? оно просто не будет работать не используя нод потому что требуется каждый раз SHA256 высчитывать.
Мне по сути придется свой сервер поднимать на основе их скриптов, т.е. мой комп будет работать как сервер? Их скрипты по моему как раз это и делают. Надо только разобраться куда чего вставлять.
-
@botovod said in Авторизация по API с отправкой HTTP-заголовка. Помогите кто может!:
Жаль уроки у автора только для премиум пользователей
А где Вы нашли уроки только для премиум? я премиум но нигде не встречал уроков именно для этой категории.
Все что видел есть на ютубе и там оно доступно для всех -
@root said in Авторизация по API с отправкой HTTP-заголовка. Помогите кто может!:
@allive Вы о чем вообще? оно просто не будет работать не используя нод потому что требуется каждый раз SHA256 высчитывать.
можно и без нод. https://passwordsgenerator.net/sha256-hash-generator/ запрос туда и все.
-
@botovod said in Авторизация по API с отправкой HTTP-заголовка. Помогите кто может!:
Мне по сути придется свой сервер поднимать на основе их скриптов, т.е. мой комп будет работать как сервер? Их скрипты по моему как раз это и делают. Надо только разобраться куда чего вставлять.
не нужно этого. простое клиентское приложение, в документации все подробно расписано
-
Спасибо за подсказки ребята. У меня немного прояснилось как это должно выглядеть.
Решил попробовать через Node JS, в БАСе это меню "встроенные языки" -> "Node.js". Туда я добавил программный код, который предлагает БИТМЕКС на гитхабе: взято тут https://github.com/BitMEX/api-connectors/tree/master/official-http/node-requestvar request = require('request'); var crypto = require('crypto'); var apiKey = "API_KEY"; var apiSecret = "API_SECRET"; var verb = 'POST', path = '/api/v1/order', expires = new Date().getTime() + (60 * 1000), // 1 min in the future data = {symbol:"XBTUSD",orderQty:1,price:590,ordType:"Limit"}; // Pre-compute the postBody so we can be sure that we're using *exactly* the same body in the request // and in the signature. If you don't do this, you might get differently-sorted keys and blow the signature. var postBody = JSON.stringify(data); var signature = crypto.createHmac('sha256', apiSecret).update(verb + path + expires + postBody).digest('hex'); var headers = { 'content-type' : 'application/json', 'Accept': 'application/json', 'X-Requested-With': 'XMLHttpRequest', // This example uses the 'expires' scheme. You can also use the 'nonce' scheme. See // https://www.bitmex.com/app/apiKeysUsage for more details. 'api-expires': expires, 'api-key': apiKey, 'api-signature': signature }; const requestOptions = { headers: headers, url:'https://testnet.bitmex.com'+path, method: verb, body: postBody }; request(requestOptions, function(error, response, body) { if (error) { console.log(error); } console.log(body); });API_KEY и API_SECRET разумеется заменил на свои рабочие значения.
Но БАС выдает ошибку: Cannot find module 'request'
В чем ошибка и как исправить? -
Форумчане, снова нужна ваша помощь.
С созданием и редактированием ордера через Node JS более менее разобрался, это работает. Модуль request установил, crypto не ставил, вроде и без него шифрует нормально (или нет?).
Но помимо этого мне еще нужно выполнять и другие запросы к бирже, в частности - получить размер текущей открытой позиции (в долларах) (см. скрин), и вот тут непонятки.

Понятно, что размер позиции доступен только после авторизации, значит для отправки запроса через Node JS или GET запросом тоже требуется авторизация.
Вобщем я набросал скрипт. Внутри скрипт я разделил на части действием "прервать скрипт", чтоб не создавать несколько скриптов.
Самое первое действие это Node JS - это создание ордера, он работает, и я привел его для примера (там используется официальный код для авторизации, о котором говорится в руководстве).Мне сейчас нужно получить размер позиции (количество контрактов), кто не понимает что это - это количество долларов которое я купил после испольнения ордера, т.е. битки обменял на доллары (в ЛК отображаются как цифра).
Затем идут четыре зеленых действия - это попытка получить размер позиции и записать ее значение в переменную. Для этого я попытался сгенерировать переменную [[SIGNATURE]] в Node JS, а затем отправить GET запрос с заголовком обычным действием в BAS.
Не вышло. Выдает ошибку "Signature not valid". В руководстве к бирже есть упоминание об этой ошибке, см. по ссылке https://www.bitmex.com/app/apiKeysUsageИ наконец последние три блока (голубые) - попытка сделать GET запрос исключительно через Node JS и вывести ответ в переменную. Тоже не вышло.
Вот скрипт 0_1530018473036_B - TESTNET.xml
Сразу скажу, что скрипты авторизации в руководстве биржи сделаны для www.bitmex.com, поэтому "www" в адресе нужно заменить на "testnet" (без "www"). В моих примерах я уже сделал это.
Вобщем нужно получить размер позиции (количество контрактов).
Ссылка на руководство по авторизации: https://www.bitmex.com/app/apiKeysUsage
Ссылка на тех. документацию по использованию API: https://www.bitmex.com/api/explorer/#!/Position/Position_get (после перехода откроется раздел где описывается как получить позицию,
Position : Summary of Open and Closed Positions -> Get your positions).Возможно нужно лишь правильно сформировать заголовок GET запроса, хотя не уверен что проблема именно в этом.
Кто сможет сделать удачный GET запрос и вывести значение позиции (кол-во контрактов) (или ответа, содержащего позицию) в переменную тому в качестве бонуса даю 50 руб.
-
@bablouser said in Авторизация по API с отправкой HTTP-заголовка. Помогите кто может!:
ахахах ))) хоть не белорусских ? ))
Ну 50 белорусских рублей это сейчас ~25$ так что есть за что бороться :)
