Вот пример реализации Huobi API на Python с использованием библиотеки requests
:
import requests
import hashlib
import hmac
import time
API_KEY = 'YOUR_API_KEY'
SECRET_KEY = 'YOUR_SECRET_KEY'
BASE_URL = 'https://api.huobi.pro'
# Создание подписи для запроса
def create_signature(method, endpoint, params={}):
params['AccessKeyId'] = API_KEY
params['SignatureMethod'] = 'HmacSHA256'
params['SignatureVersion'] = '2'
params['Timestamp'] = time.strftime('%Y-%m-%dT%H:%M:%S', time.gmtime())
sorted_params = sorted(params.items(), key=lambda x: x[0], reverse=False)
query_string = '&'.join([f'{key}={value}' for key, value in sorted_params])
payload = f'{method}\napi.huobi.pro\n{endpoint}\n{query_string}'
signature = hmac.new(SECRET_KEY.encode('utf-8'), payload.encode('utf-8'), hashlib.sha256).hexdigest()
return signature
# Отправка GET-запроса
def send_get_request(endpoint, params={}):
url = f'{BASE_URL}{endpoint}'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': f'Bearer {API_KEY}'
}
response = requests.get(url, headers=headers, params=params)
return response.json()
# Пример использования API
def get_balance():
endpoint = '/v1/account/accounts'
signature = create_signature('GET', endpoint)
params = {'Signature': signature}
response = send_get_request(endpoint, params)
print(response)
# Вызов функции для получения баланса
get_balance()
В этом примере используются ключ API (API_KEY
) и секретный ключ (SECRET_KEY
), которые вы должны получить в своем аккаунте Huobi. Замените YOUR_API_KEY
и YOUR_SECRET_KEY
соответственно.
Этот пример демонстрирует отправку GET-запроса для получения баланса аккаунта. Вы можете использовать другие методы и эндпоинты API Huobi, изменяя endpoint
и параметры запроса в соответствии с документацией Huobi API.
Обратите внимание, что это базовый пример, и вам может потребоваться дополнительная логика для обработки ответов и обработки ошибок в вашем коде. Не забудьте также прочитать документацию Huobi API для получения полного понимания доступных методов и параметров.