cprogrammer Posted April 4, 2016 Share Posted April 4, 2016 (edited) Hallo Leute, ich möchte die Tapi von Bitcoin nutzen. Dabei nehme ich mir die von Bitcoin erstellte TradingApiSdkv1.php Programmiert wird in php unter Linux. Die Abfrage showAccountInfo ist für den Key freigeschaltet. Das ist mein Quellcode: <?php require_once 'TradingApiSdkv1.php'; define("APIKEY", "abcdef123456789"); define("APISECRET", "1234567890") $trading_api_sdk = new TradingApiSdk([APIKEY], [APISECRET]); $account_info = $trading_api_sdk->doRequest(TradingApiSdk::METHOD_SHOW_ACCOUNT_INFO); var_dump($account_info); ?> Den Apikey und den Apisecret habe ich mit ausdedachten zahlen überschrieben aber im Originalfile steht natürlich der RICHTIGE Api key und der apisecret. Als Ausgabe bekomme ich: PHP Notice: Array to string conversion in /var/www/html/Bitcoin/myBitcoin/TradingApiSdkv1.php on line 383 PHP Stack trace: PHP 1. {main}() /var/www/html/Bitcoin/myBitcoin/index.php:0 PHP 2. TradingApiSdk->doRequest() /var/www/html/Bitcoin/myBitcoin/index.php:16 PHP 3. implode() /var/www/html/Bitcoin/myBitcoin/TradingApiSdkv1.php:383 PHP Warning: hash_hmac() expects parameter 3 to be string, array given in /var/www/html/Bitcoin/myBitcoin/TradingApiSdkv1.php on line 388 PHP Stack trace: PHP 1. {main}() /var/www/html/Bitcoin/myBitcoin/index.php:0 PHP 2. TradingApiSdk->doRequest() /var/www/html/Bitcoin/myBitcoin/index.php:16 PHP 3. hash_hmac() /var/www/html/Bitcoin/myBitcoin/TradingApiSdkv1.php:388 PHP Notice: Array to string conversion in /var/www/html/Bitcoin/myBitcoin/TradingApiSdkv1.php on line 394 PHP Stack trace: PHP 1. {main}() /var/www/html/Bitcoin/myBitcoin/index.php:0 PHP 2. TradingApiSdk->doRequest() /var/www/html/Bitcoin/myBitcoin/index.php:16 array(4) { 'errors' => array(1) { [0] => array(2) { 'message' => string(34) "Wrong format for header: X-API-KEY" 'code' => int(1) } } 'successful' => bool(false) 'headers' => array(13) { 'Server' => string(16) "cloudflare-nginx" 'Date' => string(29) "Mon, 04 Apr 2016 10:17:57 GMT" 'Content-Type' => string(31) "application/json; charset=utf-8" 'Transfer-Encoding' => string(7) "chunked" 'Connection' => string(10) "keep-alive" 'Set-Cookie' => string(127) "__cfduid=a8areb3dab1c50b4b34038fb9243304f41459788078; expires=Tue, 04-Apr-17 10:17:57 GMT; path=/; domain=.bitcoin.de; HttpOnly" 'Cache-Control' => string(8) "no-cache" 'Expires' => string(29) "Thu, 01 Jan 1970 00:00:00 GMT" 'X-Frame-Options' => array(2) { [0] => string(4) "deny" [1] => string(4) "DENY" } 'X-Content-Type-Options' => string(7) "nosniff" 'Strict-Transport-Security' => string(44) "max-age=36582010; includeSubDomains; preload" 'X-Xss-Protection' => string(13) "1; mode=block" 'Cf-Ray' => string(20) "42f4b87535a0215b-FRA" } 'status_code' => int(400) } Ganz unten steht der Status code und der bedeutet 400 = Bad Request Außerdem sieht man unter 'successful' => bool(false) das es nicht erfolgreich war ok gucken wir uns die errors an: array(4) { 'errors' => array(1) { [0] => array(2) { 'message' => string(34) "Wrong format for header: X-API-KEY" 'code' => int(1) } } Da steht string(34) "Wrong format for header: X-API-KEY" Hab ich den in einem falschen Format abgespeichert? Was mache ich falsch? Viele Grüße Edited April 4, 2016 by cprogrammer Link to comment Share on other sites More sharing options...
Christoph Bergmann Posted April 4, 2016 Share Posted April 4, 2016 Hallo, ein paar Tipps / Hinweise von der Technik - wenn du uns deinen API-Key (wie er 1:1 im HTTP-Header gesetzt wird) zukommen lässt, sollte sich das Problem relativ schnell lösen lassen (bitte per PM an mich) - Der reguläre Ausdruck innerhalb der Plausibilitätsprüfung des entsprechenden X-HTTP-Headers für den API-Key akzeptiert nur 32 Zeichen aus Buchstaben bzw. Zahlen. Evtl. hast du ein Leerzeichen vor oder hinter dem API-Key stehen. Hoffe, das hilft weiter. Link to comment Share on other sites More sharing options...
cprogrammer Posted April 4, 2016 Author Share Posted April 4, 2016 Hallo Christoph, Danke für deine Nachricht! Mein ApiKey ist 32 zeichen lang. Der Api secret ist 40 Zeichen lang. Ich habe die Keys eben noch einmal überprüft und sie stimmen ganz sicher. Ich schicke dir jetzt ne PM. Link to comment Share on other sites More sharing options...
cprogrammer Posted April 4, 2016 Author Share Posted April 4, 2016 (edited) Ich habe jetzt in der TradingApiSdkv1.php ein paar Zeilen hinzugefügt. (gekennzeichneter Bereich) public function __construct($api_key, $secret, array $options = array()) { $this->api_key = $api_key; $this->secret = $secret; /*von mir hinzugefügt*/ echo "\nciau\n\n"; echo $api_key; echo "\n\n"; /*ende hinzufügung*/ aber es wird einfach nichst ausgegeben. Der Befehl : echo $api_key; sollte eigentlich den api_key ausgeben, dass macht er aber nicht und ich verstehe nicht warum. Es ist ja der api_key der als Funktionswert übergeben wurde und nicht this->api_key. this->api_key ist protected und kann sowieso nicht ausgeben werden. Ich verstehe es nicht... Edited April 4, 2016 by cprogrammer Link to comment Share on other sites More sharing options...
cprogrammer Posted April 4, 2016 Author Share Posted April 4, 2016 ok solved: man muss die eckigen klammern entfernen in nachfolgender zeile: $trading_api_sdk = new TradingApiSdk([APIKEY], [APISECRET]); sodass das hier steht: $trading_api_sdk = new TradingApiSdk(APIKEY, APISECRET); Dann funktionierts. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now