Zum Inhalt springen

Api Abfrage Fehler 400 Bad Request


Empfohlene Beiträge

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 von cprogrammer
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

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 von cprogrammer
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.