Answer the question
In order to leave comments, you need to log in
How to generate a request to create an Exmo code?
Hello! I've looked all over the net and can't find any clues. I'm trying to remake a trading bot so that it cuts off the exmo code. I changed the program a little, but I just can’t form the correct request.
Tell me what should I do?
import urllib, http.client
import time
import json
# эти модули нужны для генерации подписи API
import hmac, hashlib
from exmo_key import *
# ключи API, которые предоставила exmo
API_KEY = a
# обратите внимание, что добавлена 'b' перед строкой
API_SECRET = b
CURRENCY='RUB'
# базовые настройки
API_URL = 'api.exmo.com'
API_VERSION = 'v1'
# Свой класс исключений
class ScriptError(Exception):
pass
class ScriptQuitCondition(Exception):
pass
# все обращения к API проходят через эту функцию
def call_api(api_method, http_method="POST", **kwargs):
# Составляем словарь {ключ:значение} для отправки на биржу
# пока что в нём {'nonce':123172368123}
payload = {'nonce': int(round(time.time()*1000))}
# Если в ф-цию переданы параметры в формате ключ:значение
if kwargs:
# добавляем каждый параметр в словарь payload
# Получится {'nonce':123172368123, 'param1':'val1', 'param2':'val2'}
payload.update(kwargs)
# Переводим словарь payload в строку, в формат для отправки через GET/POST и т.п.
payload = urllib.parse.urlencode(payload)
# Из строки payload получаем "подпись", хешируем с помощью секретного ключа API
# sing - получаемый ключ, который будет отправлен на биржу для проверки
H = hmac.new(key=API_SECRET, digestmod=hashlib.sha512)
H.update(payload.encode('utf-8'))
sign = H.hexdigest()
# Формируем заголовки request для отправки запроса на биржу.
# Передается публичный ключ API и подпись, полученная с помощью hmac
headers = {"Content-type": "application/x-www-form-urlencoded",
"Key":API_KEY,
"Sign":sign,
"currency":CURRENCY,
"amount":10
}
# Создаем подключение к бирже, если в течении 60 сек не удалось подключиться, обрыв соединения
conn = http.client.HTTPSConnection(API_URL, timeout=60)
# После установления связи, запрашиваем переданный адрес
# В заголовке запроса уходят headers, в теле - payload
conn.request(http_method,"/"+API_VERSION + "/" + api_method, payload, headers)
# Получаем ответ с биржи и читаем его в переменную response
response = conn.getresponse().read()
# Закрываем подключение
conn.close()
return response
ex_code=call_api('excode_create')
print(ex_code)
Answer the question
In order to leave comments, you need to log in
## Getting Started
Install composer in your project: ```curl -s https://getcomposer.org/installer | php```
Create a composer.json file in your project root: ```{
"require": {
"exmo/api": "1.*"
}
}```
Install via composer:```php composer.phar install```
```php
use Exmo\Api\Request;
require 'vendor/autoload.php';
$request = new Request('your_key', 'your_secret');
$result = $request->query('user_info');
...
```
<?php
use Exmo\Api\Request;
require 'vendor/autoload.php';
$request = new Request('K-00000000000000aaaaaaaaaaaaaaaaaaaaa', 'S-dddddddddddddddddaaaaaaaaaaaaaaassssss');
$result = $request->query('excode_create', Array( 'currency'=>'RUB', 'amount'=>1000,));
var_dump($result);
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question