API: различия между версиями

Материал из 50x.com
Перейти к навигации Перейти к поиску
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
==Пример работы с АПИ на Python==
+
==Пример работы с API на Python==
  
 
Описание и примеры работы с API 50X.com на примере Python смотрите на странице https://api.50x.com/
 
Описание и примеры работы с API 50X.com на примере Python смотрите на странице https://api.50x.com/
  
==Пример работы с АПИ на PHP==
+
==Пример работы с API на PHP==
  
 
<pre style="white-space: pre; border: 2px dashed #ddd;padding: 5px 20px 5px;margin: 30px 5px 5px;max-width:1000px;clear:left;">
 
<pre style="white-space: pre; border: 2px dashed #ddd;padding: 5px 20px 5px;margin: 30px 5px 5px;max-width:1000px;clear:left;">
Строка 20: Строка 20:
 
     $pars['timestamp'] = number_format(microtime(true)*1000, 0, '.', '');
 
     $pars['timestamp'] = number_format(microtime(true)*1000, 0, '.', '');
 
     $query_string = http_build_query($pars, '', '&');
 
     $query_string = http_build_query($pars, '', '&');
     $sign = $m = hash_hmac('sha256', $query_string, $api_sec);
+
     $pars['signature'] = hash_hmac('sha256', $query_string, $api_sec);
    $pars['signature'] = $sign;
 
 
     $query_string = http_build_query($pars, '', '&');
 
     $query_string = http_build_query($pars, '', '&');
 
      
 
      
Строка 53: Строка 52:
 
// и т.д. с другими методами
 
// и т.д. с другими методами
  
// пример вывода в браузере результат в JSON
+
// получение результата в JSON
echo json_encode(json_decode($json), JSON_PRETTY_PRINT);  
+
print_r($json);
 +
 
 +
// ИЛИ получение результата в виде объекта
 +
//print_rp(json_decode($json));
 +
 
 +
// ИЛИ получение результата в виде массива
 +
//print_r(json_decode($json, true));
  
 
</pre>
 
</pre>
 +
 +
 +
Протестировать код и провести испытания можно тут https://paiza.io/projects/Idp9u92qf2tgOvTrWa1Urg

Текущая версия на 16:24, 26 февраля 2020

Пример работы с API на Python

Описание и примеры работы с API 50X.com на примере Python смотрите на странице https://api.50x.com/

Пример работы с API на PHP


/*** API ключи ***/
$KEY_50x = 'INSERT API KEY HERE';
$SEC_50x = 'INSERT API SEC HERE';

// функция принимающая параметры и возвращающая результат в JSON
function api_call_50x($method, $pars, $api_key, $api_sec) {
    // адрес API, на который идет запрос
    $URL_50x = 'https://api.50x.com/';
    
    // формирование строки с параметрами запроса
    $pars = json_decode($pars, true);
    $pars['timestamp'] = number_format(microtime(true)*1000, 0, '.', '');
    $query_string = http_build_query($pars, '', '&');
    $pars['signature'] = hash_hmac('sha256', $query_string, $api_sec);
    $query_string = http_build_query($pars, '', '&');
    
    // заголовки запроса
    $header = array(
        "Content-Type: application/x-www-form-urlencoded",
        "Accept': 'application/json",
        "User-Agent: 50x/php",
        "X-MBX-APIKEY: $api_key",
        "ORIGIN-PARS: $query_string"
    );
    
    // отправка запроса
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $URL_50x.$method.'/');
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($pars));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);
    
    return $result;
}

/*** ПРИМЕР ЗАПРОСОВ ***/
$json = api_call_50x('json.userinfo', '{}', $KEY_50x, $SEC_50x);
//$json = api_call_50x('json.place_order', '{"pair":"50X/A2A","v":500,"ot":"l","r":4.54,"bs":"s"}', $KEY_50x, $SEC_50x);
//$json = api_call_50x('json.orderslist', '{"pn":1}', $KEY_50x, $SEC_50x);
//$json = api_call_50x('json.blotter', '{"sym":"ETH"}', $KEY_50x, $SEC_50x);
// и т.д. с другими методами

// получение результата в JSON
print_r($json);

// ИЛИ получение результата в виде объекта
//print_rp(json_decode($json));

// ИЛИ получение результата в виде массива
//print_r(json_decode($json, true));


Протестировать код и провести испытания можно тут https://paiza.io/projects/Idp9u92qf2tgOvTrWa1Urg