cprogrammer Geschrieben 4. April 2016 Teilen Geschrieben 4. April 2016 (bearbeitet) 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 Bearbeitet 4. April 2016 von cprogrammer Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Christoph Bergmann Geschrieben 4. April 2016 Teilen Geschrieben 4. April 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 zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cprogrammer Geschrieben 4. April 2016 Autor Teilen Geschrieben 4. April 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 zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cprogrammer Geschrieben 4. April 2016 Autor Teilen Geschrieben 4. April 2016 (bearbeitet) 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... Bearbeitet 4. April 2016 von cprogrammer Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cprogrammer Geschrieben 4. April 2016 Autor Teilen Geschrieben 4. April 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 zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden