У меня возникли проблемы с выполнением инструкций API LakeBTC для подключения к их API через Python.
Документация по API: https://www.lakebtc.com/s/api
У меня есть ключ (адрес электронной почты) и секрет. Я использую URL-адрес API: https://www.LakeBTC.com/api_v1 .
Что бы я ни пытался, я получаю ошибку 401. Ниже мой код, есть идеи?
tonce = str(int(time.time() * 1e6))
p = 'tonce=' + tonce \
+ '&accesskey=' + self.key \
+ '&requestmethod=post' \
+ '&id=1' \
+ '&method=' + 'getAccountInfo' \
+ '¶ms='
# Create signature
hmac_obj = hmac.new(self.secret, p, hashlib.sha1)
b64 = 'Basic ' + base64.b64encode(self.key + ':' + hmac_obj.digest())
header = {
'Json-Rpc-Tonce': tonce,
'Authorization': b64,
'content-type': 'application/json-rpc',
}
response = requests.post(self.apiUrl, data=p, headers=header)
Правильно ли я шифрую и хэширую?
Присмотревшись к их странице API, вы обнаружите, что LakeBTC предоставил простой код для Python: https://github.com/LakeBTC/lakebtc_python .
И другие образцы кода, которые вы можете найти здесь: https://www.lakebtc.com/s/api , включая PHP, Node.JS, Ruby и Python, возможно, в будущем будет больше кода :)
Кажется, я понял твою проблему. (Или, по крайней мере, один из них.)
Шаг 6: POST отправляет данные параметров в формате JSON по этому URL-адресу:
https://www.LakeBTC.com/api_v1 .
Вы не публикуете правильную информацию; вы публикуете всю подпись.
response = requests.post(self.apiUrl, data=p, headers=header)
Должно быть что-то вроде:
response = requests.post(self.apiUrl, data=json.dumps(
{
"method": method,
"params":",".join(params),
"id": 1,
}, headers=header)
Ник Оделл
quanabe