REST API Fehler HTTP: 401

Liebe Shopware Gemeinde,

vielleicht kann jemand mir bei folgendem Problem helfen:
Arbeitsumgebung: lokaler Ubuntu Server 16.04 (Apache 2), PHP 7.0.25-1, Shopware 5.3.4

Möchte gern mit der REST API arbeiten und bin nach der Developer Doku ( REST API - Basics ) vorgegangen.
Ein Vebindungstest über die Browser URL mit “http://meinetestdomain.de/api/version” gibt mir nach Authentifizierung die korrekte Version aus:
data
version"5.3.4"
revision"201710241020"
success true

Versuche ich mich dann aber mit dem Beispielscript aus der Developer Doku mit den gleichen Benutzerdaten zu verbinden:

$client = new ApiClient(
    //URL of shopware REST server
    'http://meinetestdomain.de/api',
    //Username
    'Administrator',
    //User's API-Key
    'meinAdministratorAPIKey'
);

$client->get('articles/335');

erhalte ich folgende Fehlermeldung:

HTTP: 401

Could not decode json

json_last_error: Syntaxerror
Raw:

Authorization Required

This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn’t understand how to supply the credentials required.

NULL

Kann mir jemand sagen, warum ich diesen Fehler erhalte und was ich machen muss, um die REST API erfolgreich nutzen zu können?

Viele Grüße
Thomas

 

Was passiert wenn du den Artikel Request mal für deinen Browser absetzt? Bzw. den Version Request mal über deinen PHP Code?  Ich denke mal der ApiClient von Shopware ist fehlerhaft. Hast du es mal anders probiert? über Guzzle oder file_get_contents?

Hallo,

nein, habe es noch nicht mit Guzzle o.ä probiert. Wollte mich erst einmal etwas einarbeiten und dachte deshalb den Api Client von Shopware dafür zu nehmen.

Wenn ich z.B. mal den Version Request über PHP machen möchte brauche ich doch auch den ApiClient oder denke ich da falsch?

Danke für die Antwort und viele Grüße
Thomas

Genau, dann brauchst du auch den ApiClient. Aber so könnte man rausfinden ob es am Restapi Endpoint oder am ApiClient liegt.