Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Korzystanie z API
Lethys
post
Post #1





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Witam,

Nigdy nie korzystałem z żadnego API i mam problem z pobraniem danych.

Chcę korzystać z API giełdy kryptowalutowej (BitCurex). W panelu wygenerowałem klucz api i secret, dałem zezwolenia na to co chcę odczytać ale teraz trzeba pobrać te dane przez PHP i tu nie mam pojęcia jak się do tego zabrać.

Link do objaśnień API: https://bitcurex.com/pl-pages,plnapi.html
Link do API: https://pln.bitcurex.com/api/0/

Chodzi mi o uzyskanie stanu mojego konta, czyli getFunds.

Mam taki zalążek ale nie wiem co dalej a w necie nie mogę znaleźć jakiegoś konkretnego tutoriala o obsłudze API:

  1. <?php
  2.  
  3. function bitcurex_api(method, params) {
  4. var url = 'https://pln.bitcurex.com/api/0/'+method;
  5. var api_key='MÓJ KLUCZ';
  6. var api_secret='MÓJ SEKRET';
  7. }
  8.  
  9.  
  10. bitcurex_api("getFunds");
  11.  
  12.  
  13. ?>


Jak stworzyć prosty skrypt to obsługi API, tak aby podane funkcje działały np. getFunds.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
luniak
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 36
Dołączył: 12.01.2008
Skąd: Puszcza Mariańska

Ostrzeżenie: (0%)
-----


Api wygląda na restowe więc krok po kroku:

  1.  
  2. $key = "twoj-api-key";
  3. $secret = "twoj-api-secret";
  4. $url = 'https://pln.bitcurex.com/api/0/getFunds';
  5.  
  6.  
  7. // Generujemy sobie nonce [ wymagany zgodnei z dok. ]
  8. $mt = explode(' ', microtime());
  9. $req = array('nonce' => $mt[1].substr($mt[0], 2, 6));
  10.  
  11. $post_data = http_build_query($req, '', '&');
  12.  
  13. // Tworzymy headery z kluczmy restowymi
  14. $headers = array(
  15. 'Rest-Key: '.$key,
  16. 'Rest-Sign: '.base64_encode(hash_hmac('sha512', $post_data, base64_decode($secret), true)),
  17. );
  18.  
  19. // Ustawamy curl'a
  20. $ch = curl_init();
  21. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  22. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; Bitcurex PLN PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
  23. curl_setopt($ch, CURLOPT_URL, $url);
  24. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  25. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  26. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  27.  
  28. // wysyłąmy zapytanie
  29. $res = curl_exec($ch);
  30. if ($res === false){ echo "błąd returna"; die; };
  31.  
  32. // dekodujmy jsona i dostajemy objekt z danymi
  33. $dec = json_decode($res, true);
  34.  
  35.  


Ten post edytował luniak 19.08.2014, 16:21:11
Go to the top of the page
+Quote Post
Lethys
post
Post #3





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Cytat(luniak @ 19.08.2014, 15:19:37 ) *
Api wygląda na restowe więc krok po kroku:

  1.  
  2. $key = "twoj-api-key";
  3. $secret = "twoj-api-secret";
  4. $url = 'https://pln.bitcurex.com/api/0/getFunds';
  5.  
  6.  
  7. // Generujemy sobie nonce [ wymagany zgodnei z dok. ]
  8. $mt = explode(' ', microtime());
  9. $req = array('nonce' => $mt[1].substr($mt[0], 2, 6));
  10.  
  11. $post_data = http_build_query($req, '', '&');
  12.  
  13. // Tworzymy headery z kluczmy restowymi
  14. $headers = array(
  15. 'Rest-Key: '.$key,
  16. 'Rest-Sign: '.base64_encode(hash_hmac('sha512', $post_data, base64_decode($secret), true)),
  17. );
  18.  
  19. // Ustawamy curl'a
  20. $ch = curl_init();
  21. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  22. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; Bitcurex PLN PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
  23. curl_setopt($ch, CURLOPT_URL, $url);
  24. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  25. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  26. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  27.  
  28. // wysyłąmy zapytanie
  29. $res = curl_exec($ch);
  30. if ($res === false){ echo "błąd returna"; die; };
  31.  
  32. // dekodujmy jsona i dostajemy objekt z danymi
  33. $dec = json_decode($res, true);
  34.  
  35.  


Kurcze nie działa, mam biały ekran nic nie zwraca.

Oczywiście podmieniłem klucz + secret.

Dodałem też:

  1. ini_set('display_errors', 1);


Ale nie pokazuje żadnego błędu.


Co do getFunds to zgodnie z dokumentacją trzeba jeszcz chyba wybrać zwrot:

Cytat
getFunds - pobiera aktualne saldo dostępne konta i adres zasileń BTC
POST: nonce=#, zwrot: plns, btcs, address


próbowałem w ten sposób:

  1. $url = 'https://pln.bitcurex.com/api/0/getFunds[plns]';


ale nie działa (IMG:style_emoticons/default/sad.gif)

Ten post edytował Lethys 19.08.2014, 19:28:47
Go to the top of the page
+Quote Post
luniak
post
Post #4





Grupa: Zarejestrowani
Postów: 171
Pomógł: 36
Dołączył: 12.01.2008
Skąd: Puszcza Mariańska

Ostrzeżenie: (0%)
-----


Emm ale jestes śwaidom że:
  1. $dec = json_decode($res, true);


nie wyświetla tylko przypisuje do zmiennej?

Bo mi ten kod ładnie działa i po zdumpowaniu dostaję ładną odpowiedź

array(3) { ["plns"]=> string(10) "0.00000000" ["btcs"]=> string(10) "0.00000000" ["address"]=> string(34) "14RXwdfzG2K2ozoQPwvPaDYvE1rQohUsQV" }
Go to the top of the page
+Quote Post
Lethys
post
Post #5





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Cytat(luniak @ 19.08.2014, 18:49:54 ) *
Emm ale jestes śwaidom że:
  1. $dec = json_decode($res, true);


nie wyświetla tylko przypisuje do zmiennej?

Bo mi ten kod ładnie działa i po zdumpowaniu dostaję ładną odpowiedź

array(3) { ["plns"]=> string(10) "0.00000000" ["btcs"]=> string(10) "0.00000000" ["address"]=> string(34) "14RXwdfzG2K2ozoQPwvPaDYvE1rQohUsQV" }



Dobra działa wielkie dzięki. Dawno nie siedziałem w php i podstaw pozapominałem.

A jakbym chciał skorzystać przykładowo z buyBTC,

Cytat
buyBTC - ustawia zlecenie skupu BTC (BID)
POST: nonce=#&amount=#&price=#, zwrot: plns, btcs, orders


To po prostu zamieniam:

  1. $url = 'https://pln.bitcurex.com/api/0/buyBTC&amount=1.323&price=1762';


tak? czy trzeba będzie jeszcze coś kombinować?
Go to the top of the page
+Quote Post
luniak
post
Post #6





Grupa: Zarejestrowani
Postów: 171
Pomógł: 36
Dołączył: 12.01.2008
Skąd: Puszcza Mariańska

Ostrzeżenie: (0%)
-----


do tablicy dodajesz pozostałe 2 zmienne:

  1. $req = array(
  2. 'nonce' => $mt[1].substr($mt[0], 2, 6)
  3. 'amount'=>1.323,
  4. 'price'=>1762
  5. );
  6.  


a w urlu zmieniasz tylko metodę:

  1. $url = 'https://pln.bitcurex.com/api/0/buyBTC';
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 07:41