Jump to content

Api Abfrage Fehler 400 Bad Request


Recommended Posts

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 by cprogrammer
Link to comment
Share on other sites

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

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

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 by cprogrammer
Link to comment
Share on other sites

ok solved:

 

man muss die eckigen klammern entfernen in nachfolgender zeile:

  1. $trading_api_sdk = new TradingApiSdk([APIKEY], [APISECRET]);
  2. sodass das hier steht:

 

$trading_api_sdk = new TradingApiSdk(APIKEY, APISECRET);

 

Dann funktionierts.

  1.  
  2.  
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.