Я пытался подключиться к своей учетной записи с помощью API-интерфейса Deribit testnet и не могу понять, почему мой код не работает.
Функция тестирования My Apps Script:
function callderibit() {
var key = '2YZn85siaUf5A'
var secret = 'BTMSIAJ8IYQTAV4MLN88UAHLIUNYZ3HN'
var nonce = '1452237485895' ;
var baseUrl = 'https://test.deribit.com';
var action = '/api/v1/private/account'
var string =
'_=' + nonce
+ '&_ackey=' + key
+ '&_acsec=' + secret
+ '&_action='+ action;
var hash = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256,
string);
var hash_encoded = Utilities.base64Encode(hash);
var signature = key + '.' + nonce + '.' + hash_encoded ;
var options = {'headers': {'X-Deribit-Sig': signature}}
// Call the API
var response = UrlFetchApp.fetch(baseUrl + action , options )
//Parse the JSON reply
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data);
}
Это подпись, которую я создаю: 2YZn85siaUf5A.1452237485895.KOlc7ELGnz8cjYp614ONxZlngo / z2AHMEjVdlHlW9Oo =
100 * * 100вот этот: 2YZn85siaUf5A.1452237485895.LQctRklxPiJDHJj9ZYp78Epilx7N78crGghzr1pvNlI =
НОВАЯ ИНФОРМАЦИЯ
Как мы выяснили, функционирующие правильно сайты, поскольку они не являются производимыми объектами, так как они не являются производимыми, поскольку они не являются производимыми объектами, поскольку они не являются производимыми объектами, поскольку они не являются производимыми объектами, поскольку они не являются производимыми объектами, так как они не являются производимыми объектами.хэш, чем они должны.
После этого я связался с deribit и получил ответ: .............................................................................
"Привет
Я приложил примеры Python для API v1. Вы также можете найти оболочки Python, Nodejs для API v1 на нашей странице github https://github.com/deribit
Обратите внимание, дальнейшая разработкаAPI v1 завершен - хотя API v1 все еще доступен, мы больше ориентируемся на API v2 https://docs.deribit.com/v2 ".............................................................................
Прикрепленный py:
#!/usr/bin/python
import time
import base64
import hashlib
from urllib.parse import urlencode
from urllib.request import Request, urlopen
api_key = 'API_KEY'
api_secret = 'API_SECRET'
instrument = 'BTC-PERPETUAL'
tstamp = '1485629332052'
price = 100
size = 1
params = (tstamp, api_key, api_secret, instrument, price, size)
data='_=%s&_ackey=%s&_acsec=%s&_action=/api/v1/private/buy&instrument=%s
&post_only=true&price=%0.2f&quantity=%d' % params
hashed = base64.b64encode(hashlib.sha256(data.encode()).digest())
signature = '%s.%s.%s' % (api_key, tstamp, hashed.decode())
headers = {"x-deribit-sig": signature, "content-type":"application/x-www-
form-urlencoded"}
# important: in signature post_only=true, but in params it was True - so
signature can't match
params={'instrument': instrument, 'post_only': 'true', 'price':
'%0.2f'%price,'quantity': size}
url = 'https://test.deribit.com/api/v1/private/buy'
data = urlencode(params).encode()
request = Request(url, urlencode(params).encode(), headers)
json = urlopen(request).read().decode()
print(json)