Erste Schritte mit der Magento REST-API

8

Daher ist die offizielle Dokumentation sehr knapp (schlecht!), Insbesondere für jemanden, der in der Vergangenheit nicht mit REST / Oauth gearbeitet hat. Ich verwende Magento 1.8.1 CE.

Kann jemand ein einfaches PHP-Beispiel für die Verwendung der REST-API von Magento bereitstellen?

Bei Verwendung des Beispielcodes ( http://www.magentocommerce.com/api/rest/introduction.html ) erhalte ich zwei Fehler:

Message: Undefined index: state
Message: Use of undefined constant OAUTH_AUTH_TYPE_URI - assumed 'OAUTH_AUTH_TYPE_URI'

Bisher habe ich getan:

  • Installieren Sie die PHP Oauth-Erweiterung
  • Erstellen Sie mindestens ein Produkt in Magento
  • Konfigurieren Sie Ressourcenberechtigungen für Admin-REST-Benutzer zum Abrufen aller Produktdaten für Admin
  • Erstellen Sie einen Verbraucher

Jede Hilfe wird sehr geschätzt.

EDIT : Ich habe das Problem auf (Überraschung, Überraschung!) Eingegrenzt, dass OAuth nicht richtig funktioniert. Ich gab auf und änderte die Rollen und Attribute des Gastes, um alle zuzulassen. Dann habe ich Dinge getestet, um zu sehen, ob sie funktionieren, indem ich zu Folgendem navigierte:

http://yourdomain/api/rest/products
http://yourdomain/api/rest/products/1/images

Alles funktioniert tatsächlich. Wenn ich herausfinde, wie ich mit der Authentifizierung richtig umgehen soll, werde ich die Antwort veröffentlichen.

user2636834
quelle
Sie können die hier aufgeführten Beispiele zur Authentifizierung verwenden. magentocommerce.com/api/rest/… . (Scrollen Sie nach unten, bis Sie den Code sehen.) Es gibt einen für den Gast / Kunden und einen für die Administratoranmeldung. Sie sind im Grunde gleich, nur die aufgerufene URL ist unterschiedlich. Sie haben gut für mich gearbeitet.
Marius
Ich gucke mal. Ich habe jetzt einen Gast, der arbeitet, also vermassle ich die Authentifizierung. Danke für den Tipp. Mussten Sie auch selbst eine oauth_admin.php-Datei erstellen? (Entschuldigung, wenn dies in dem verlinkten Artikel erklärt wird, aber ich dachte, ich würde dich fragen, da es funktioniert (:-).
user2636834

Antworten:

2

Also @ user2636834 hast du das schon herausgefunden?

Ich erinnere mich, als ich ein Testszenario einrichtete, dass ich die gleichen Fehler bekam. Es schien, als hätte ich Oauth nicht installiert: O. Kurz gesagt, ich habe es getan (Ubuntu ausführen und diese Anweisungen befolgen , auch auf diesen Fehler stoßen ):

pecl install oauth

Fügen Sie dann extension=oauth.sozum php.iniAbschnitt "Dynamische Erweiterungen" hinzu. Starten Sie dann Apache neu

Ich habe die Beispiele von der Magento-Site ausprobiert und von der API einen Fehler erhalten:

"Ungültige Authentifizierung / fehlerhafte Anfrage"

Ich musste 'Accept' => '*/*'dem $oauthClient->fetch()Anruf einen Header hinzufügen . Danach hat alles gut funktioniert.

Ich hoffe, Sie können die Dinge zum Laufen bringen, wenn Sie es nicht schon getan haben.

7ochem
quelle
Ich habe hier ein ähnliches Problem gepostet -> magento.stackexchange.com/questions/63611/… . Ich habe versucht , das Hinzufügen 'Accept' => '*/*'zu $oauthClient->fetch()und immer noch eine bekommen 403 ForbiddenAntwort. Jemand anderes sagte, sie hätten den 403 nach der Installation von SSL gelöst. Ist das wirklich notwendig? (Nur um klar zu sein, ich habe Oauth installiert und ich erhalte nur einen 403-Fehler - keine anderen Fehler)
gtr1971