Premiers pas avec l'API REST Magento

8

La documentation officielle est donc très concise (mauvaise!), En particulier pour quelqu'un qui n'a pas travaillé avec REST / Oauth dans le passé. J'utilise Magento 1.8.1 CE.

Quelqu'un peut-il fournir un exemple PHP simple de la façon d'utiliser l'API REST de Magento?

En utilisant leur exemple de code ( http://www.magentocommerce.com/api/rest/introduction.html ) j'obtiens deux erreurs:

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

Jusqu'à présent, j'ai fait:

  • Installer l'extension php oauth
  • Créer au moins un produit dans Magento
  • Configurer les autorisations de ressources pour l'utilisateur Admin REST pour récupérer toutes les données de produit pour Admin
  • Créer un consommateur

Toute aide est grandement appréciée.

EDIT : J'ai réduit le problème à (surprise, surprise!) OAuth ne fonctionne pas correctement. J'ai abandonné et changé les rôles et les attributs d'invité pour tout autoriser. Ensuite, j'ai testé des choses pour voir si elles fonctionnaient en accédant à:

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

Tout fonctionne en effet. Si / quand je trouve comment gérer correctement l'authentification, je posterai la réponse.

user2636834
la source
Vous pouvez utiliser les exemples répertoriés ici pour l'authentification. magentocommerce.com/api/rest/… . (faites défiler vers le bas jusqu'à ce que vous voyiez le code) Il y en a un pour l'invité / client et un pour la connexion administrateur. Ils sont fondamentalement les mêmes, seule l'URL appelée est différente. Ils ont bien fonctionné pour moi.
Marius
Je vais regarder. J'ai un invité qui travaille maintenant, donc je gâche l'authentification. Merci pour le conseil. De plus, avez-vous dû créer vous-même un fichier oauth_admin.php? (désolé si cela est expliqué dans l'article lié, mais j'ai pensé que je vous demanderais puisque vous l'avez fait fonctionner (:-).
user2636834

Réponses:

2

Donc, @ user2636834 avez-vous déjà compris celui-ci?

Je me souviens quand je mettais en place un scénario de test que j'ai eu la même erreur (s). Semblait que je n'avais pas installé Oauth: O. Donc en bref, je l'ai fait (en exécutant Ubuntu et en suivant ces instructions , en rencontrant également cette erreur ):

pecl install oauth

Ajoutez ensuite extension=oauth.soà php.inila section "Dynamic Extensions". Redémarrez ensuite Apache

J'ai essayé les exemples du site Magento et j'ai reçu une erreur de l'API:

"Auth non valide / mauvaise requête"

J'ai dû ajouter un en- 'Accept' => '*/*'tête à l' $oauthClient->fetch()appel. Après cela, tout a très bien fonctionné.

J'espère que vous pourrez faire fonctionner les choses si vous ne l'aviez pas déjà fait.

7ochem
la source
J'ai posté un problème similaire ici -> magento.stackexchange.com/questions/63611/… . J'ai essayé d' ajouter 'Accept' => '*/*'à $oauthClient->fetch()et toujours obtenir une 403 Forbiddenréponse. Quelqu'un d'autre a dit avoir résolu le 403 après avoir installé SSL. Est-ce vraiment nécessaire? (juste pour être clair, j'ai installé Oauth et je ne reçois qu'une erreur 403 - pas d'autres erreurs)
gtr1971