Яндекс.Практикум

Работа с API бирижи bitflip.cc

Понадобилось как то получить некоторые данные из биржи bitflip.cc. При изучении их API некоторые моменты для меня были не очевидны, да и сильно не хватает примеров.

Вот пара примеров работы с их API через Curl, может кому поможет в разработке.

Самый простой пример, получаем текущее время сервера – метод server.getTime

Вот еще пример, например мы хотим получить OHLC данные по сделкам по торговой паре, т.е хотим увидеть OHLC данные по паре Ripple -> Rub (xrp:rub). Здесь мы используем POST запрос в котором передаем данные в формате Json.

<?php

$query = ['pair' => 'xrp:rub', 'period' => 2]; // В этом массиве указываем, что хотим запросить. pair - торговая пара, в моем случае Ripple -> Rub (xrp:rub), period - период в часах от 1 до 24

$url = 'https://api.bitflip.cc/method/market.getOHLC';

/* Headers */
$headers = ['Content-type: application/json'];

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0');
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);  
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($query));
curl_setopt($curl, CURLOPT_VERBOSE, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

$data = curl_exec($curl);
curl_close($curl); 	

if($jsonData = json_decode($data, true)) var_dump($jsonData);

?>

Это все имели дело с открытыми данными. Есть еще закрытые данные, для которых нужно использовать токены и подписывать запросы. Для начала нужно создать API токен в личном кабинете с целью использовать его для авторизации.

Теперь попробуем купить немного крипты через API. Для этого, у нас появляется два дополнительных заголовка. X-API-Token – В котором содержится ваш токен, X-API-Sign – здесь мы подписываем с использованием секретного ключа наш запрос. Запрос подписывается с помощью алгоритма  HMAC sha-512, для этого, мы используем функцию:

hash_hmac('sha512', $data_string, '*** Ваш секретный ключ - берется из меню API-токены')

Пример кода:

<?php

$query =  ['pair' => 'xrp:rub', 'type' => 'buy', 'amount' => '0.4', 'rate' => $v['sell']]; // В этом массиве указываем, что хотим купить. pair - торговая пара, в моем случае Ripple -> Rub (xrp:rub), type - тип операции buy или sell, amount -  количество единиц для размещения в ордере, rate - ставка за единицу.

$url = 'https://api.bitflip.cc/method/order.create';

/* Headers */
$headers = [
	        'Content-type: application/json',
		'X-API-Token: *** Ваш токен *** - берется из меню API-токены',
		'X-API-Sign: '.hash_hmac('sha512', $data_string, '*** Ваш секретный ключ - берется из меню API-токены')
	   ];

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0');
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);  
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($query));
curl_setopt($curl, CURLOPT_VERBOSE, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

$data = curl_exec($curl);
curl_close($curl); 	

if($jsonData = json_decode($data, true)) var_dump($jsonData);

?>

Еще пример, работа со своими кошельками. Например, получение последних транзакций – метод wallet.getTransactions. В описании написано, обязательный параметр ID (id (обязательно) – строковой идентификатор кошелька), но как узнать строковой идентификатор кошелька? Для этого есть метод wallet.getBySymbol, который покажет вам информацию о вашем кошельке включая и ID. При вызове нужно указать параметр symbol – валюта кошелька.

Понравилась статья? Поделиться с друзьями:
IPCalc Blog
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: