Bitcoin Forum

Local => Développement et technique => Topic started by: Hubert on June 25, 2016, 01:06:39 PM



Title: API Poloniex en PHP
Post by: Hubert on June 25, 2016, 01:06:39 PM

Bonjour,

j'aurai besoin d'un peu d'aide sur l'API en PHP de Poloniex.

Sur le site Poloniex ( https://poloniex.com/support/api/ ), on trouve une documentation API qui renvoi sur http://pastebin.com/iuezwGRZ pour le PHP.

Je me débrouille en PHP pour faire quelques petit site mais j'ai jamais utilisé les "class" et visiblement je dois louper quelques chose.

En imaginant, que je veuille simplement utiliser la fonction get_balances() présente sur http://pastebin.com/iuezwGRZ je dois m'y prendre comment ?

Ou dois-je rentrer mon API KEY et mon API SECRET ? 

En gros j'aimerai bien avoir un petit exemple d'utilisation d'une fonction présente sur http://pastebin.com/iuezwGRZ.

Merci  :)





Title: Re: API Poloniex en PHP
Post by: chagry on June 27, 2016, 04:21:50 PM
Si tu n'as jamais utilisé les classes et le développement orienté objet (POO), Je te conseillerais de lire ça pour commencer. https://openclassrooms.com/courses/programmez-en-oriente-objet-en-php (https://openclassrooms.com/courses/programmez-en-oriente-objet-en-php)

Ensuite, il faut comprendre, c'est quoi, une API.
En gros, une API, c'est un site qui met a ta disposition une URL qui te renverra des données brutes et non un assemblage de HTML,CSS,JS.
Dans le contexte de Poloniex, voilà un exemple d'URL disponible dans leur API https://poloniex.com/public?command=return24hVolume (https://poloniex.com/public?command=return24hVolume).

Les données retournées sont au format JSON.
Code:
{"BTC_1CR":{"BTC":"0.11913361","1CR":"464.86183637"},"BTC_ABY":{"BTC":"0.10777520","ABY":"353633.62190021"},"BTC_ADN":{"BTC":"0.04780714","ADN":"11124.52516568"},"BTC_BBR":{"BTC":"1.70329606","BBR":"53877.91608759"},"BTC_BCN":{"BTC":"2.59819803","BCN":"49838371.19232752"},"BTC_BELA":{"BTC":"0.31159637","BELA":"329597.31049334"},"BTC_BITS":{"BTC":"0.01923104","BITS":"3125.92484872"},"BTC_BLK":{"BTC":"11.65848898","BLK":"221337.68616294"},"BTC_BLOCK":{"BTC":"0.11207729","BLOCK":"1095.93983758"},...

Maintenant reproduisant la même opération, mais directement avec le PHP.
Code:
<?php

// Load Poloniex info 24h volume.
$poloniexVol file_get_contents('https://poloniex.com/public?command=return24hVolume');

// Json Decode
$poloniexVolArray json_decode($poloniexVoltrue);

// Print array of poloniex return result.
print_r($poloniexVolArray);

?>

Tu disposes maintenant de toute les données dans un tableau que tu peux traiter et enregistrait dans ta base de données.
Attention, selon les serveurs, il faudra activer allow_url_fopen on dans le .htaccess et être sure que le php contient bien les librairies exiger.

Comment utiliser API KEY et mon API SECRET.
Pour envoyer ces informations avec une URL, il faut que nous les associant avec la méthode POST, et la notre fonction file_get_contents() montre vite ses limites. Pour faire des envois avec une méthode POST, nous devrions utiliser CURL, je ne vais pas l'expliquer ici, mais tu as plein de tuto sur le net au sujet de CURL.
Mais pas de panique, comme ils sont sympas chez Polo, il nous en créait une classe prête à l'emploi que nous pouvons utiliser directement sans toucher le CURL. Et c'est là que tu découvres l'avantage du développement orienté objet.

Pour commencer, copie le code http://pastebin.com/iuezwGRZ (http://pastebin.com/iuezwGRZ) et enregistre le dans un fichier poloniex.php, à côté du index.php pour cet exemple.
Dans ton index.php, tu pourrais ajouter ce code.
Code:
<?php

// Init file poloniex.php.
require_once('poloniex.php');

// Nouvelle instance de la classe poloniex.
$polo = new poloniex('your_api_key''your_api_secret');

// Call get balances.
$pBalances $polo->get_balances();

// Print array of poloniex balances.
print_r($pBalances);

?>

Et voilà, Bon courage pour la suite  ;)

Edit : 07/06/2017
Règle de sécurité, ce code est juste une présentation simple pour montrer ou s'intègre la key et secret, mais en production, je vous conseille de lire le post de "perl" un peu plus bas!!!

La fonction file_get_contents() intègre désormais la possibilité de traiter la méthode POST pour les appel.


Title: Re: API Poloniex en PHP
Post by: Hubert on June 27, 2016, 06:13:33 PM
Merci beaucoup pour ton aide CHAGRY !!!!!!

J'arrive à faire fonctionner tout ça de mon coté. Vraiment un super Tutoriel pour un débutant merci !


Title: Re: API Poloniex en PHP
Post by: perl on June 27, 2016, 07:01:52 PM
// Nouvelle instance de la classe poloniex.
$polo = new poloniex('your_api_key', 'your_api_secret');


$api = "dddd"
secret = "dddda"
$polo = new poloniex($api,$secret);



En cas erreur évitera afficher API et Secret


Title: Re: API Poloniex en PHP
Post by: Bykiss on June 04, 2017, 12:00:36 AM
Bonjour,
Je commence en programmation PHP
si par exemple je veux appeler la fonction sell et placer un ordre avec le dernier prix +5% (en utilisant l'api public pour obtenir le prix)
quelqu'un peut me traduire ça en code
Merci d'avance
P.S. J'ai déja essayer d'avoir ma balance et ça fonctionne


Title: Re: API Poloniex en PHP
Post by: chagry on June 06, 2017, 05:27:24 PM
Je te montre la logique la plus simple et sans les contrôles ou vérifications.
Pour commencer, il nous faut récupérait le dernier prix de currencyPair BTC_DASH pour cet exemple.

Code:
<?php

// Load Poloniex info Ticker.
$poloTicker file_get_contents('https://poloniex.com/public?command=returnTicker');

// Json Decode
$poloTickerResult json_decode($poloTickertrue);

// Print le dernier prix poloniex de BTC_DASH.
print_r($poloTickerResult['BTC_DASH']['last']);

?>


Maintenant, il faut ajouter 5% au dernier prix récupérait précédemment.

Code:
<?php

$price 
$poloTickerResult['BTC_DASH']['last']*1.05;

?>


Il te reste plus qu'a envoyer ça a polo. Règle de sécurité, ce code est juste une présentation simple pour montrer ou s'intègre la key et secret, mais en production, je vous conseille de lire le post de "perl" un peu plus haut!!!

Code:
<?php

// Init file poloniex.php.
require_once('poloniex.php');

// Nouvelle instance de la classe poloniex.
$polo = new poloniex('your_api_key''your_api_secret');

// Call sell function.
//$pResult = $polo->sell('currencyPair', 'rate', 'amount');
$pResult $polo->sell('BTC_DASH'$price'YOUR_AMOUNT');

// Print array result of poloniex.
print_r($pResult);

?>


Tu aurais pu utiliser l'instance de polo pour la fonction returnTicker, mais je ne vais pas te mâcher le travail.
PS: Si tu veux développer quelle que chose dans le trading, je te conseille plus d'analyser les OrderBook plus tôt que de te baser sur le dernier prix.


Title: Re: API Poloniex en PHP
Post by: Bykiss on June 24, 2017, 11:47:48 PM
Je te montre la logique la plus simple et sans les contrôles ou vérifications.
Pour commencer, il nous faut récupérait le dernier prix de currencyPair BTC_DASH pour cet exemple.

Code:
<?php

// Load Poloniex info Ticker.
$poloTicker file_get_contents('https://poloniex.com/public?command=returnTicker');

// Json Decode
$poloTickerResult json_decode($poloTickertrue);

// Print le dernier prix poloniex de BTC_DASH.
print_r($poloTickerResult['BTC_DASH']['last']);

?>


Maintenant, il faut ajouter 5% au dernier prix récupérait précédemment.

Code:
<?php

$price 
$poloTickerResult['BTC_DASH']['last']*1.05;

?>


Il te reste plus qu'a envoyer ça a polo. Règle de sécurité, ce code est juste une présentation simple pour montrer ou s'intègre la key et secret, mais en production, je vous conseille de lire le post de "perl" un peu plus haut!!!

Code:
<?php

// Init file poloniex.php.
require_once('poloniex.php');

// Nouvelle instance de la classe poloniex.
$polo = new poloniex('your_api_key''your_api_secret');

// Call sell function.
//$pResult = $polo->sell('currencyPair', 'rate', 'amount');
$pResult $polo->sell('BTC_DASH'$price'YOUR_AMOUNT');

// Print array result of poloniex.
print_r($pResult);

?>


Tu aurais pu utiliser l'instance de polo pour la fonction returnTicker, mais je ne vais pas te mâcher le travail.
PS: Si tu veux développer quelle que chose dans le trading, je te conseille plus d'analyser les OrderBook plus tôt que de te baser sur le dernier prix.
Merci beaucoup
Ça m'a aidé énormément