Introducción a la API REST de Magento


8

Entonces, la documentación oficial es muy breve (¡malo!), Especialmente para alguien que no ha trabajado con REST / Oauth en el pasado. Estoy usando Magento 1.8.1 CE.

¿Alguien puede proporcionar un ejemplo PHP simple de cómo usar la API REST de Magento?

Usando su código de ejemplo ( http://www.magentocommerce.com/api/rest/introduction.html ) obtengo dos errores:

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

Hasta ahora he hecho:

  • Instalar la extensión php oauth
  • Crear al menos un producto en Magento
  • Configure los permisos de recursos para el usuario administrador REST para recuperar todos los datos del producto para el administrador
  • Crear un consumidor

Cualquier ayuda es muy apreciada.

EDITAR : reduje el problema a (¡sorpresa, sorpresa!) OAuth no funciona correctamente. Me di por vencido y cambié los roles y atributos de Invitado para permitir todo. Luego, probé cosas para ver si funcionaban navegando a:

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

Todo está funcionando realmente. Si / cuando descubro cómo lidiar adecuadamente con la autenticación, publicaré la respuesta.


Puede usar los ejemplos enumerados aquí para la autenticación. magentocommerce.com/api/rest/… . (desplácese hacia abajo hasta que vea el código) Hay uno para invitado / cliente y otro para inicio de sesión de administrador. Básicamente son lo mismo, solo la url llamada es diferente. Funcionaron muy bien para mí.
— Marius

Le echaré un vistazo. Tengo un invitado trabajando ahora, así que estoy arruinando la autenticación. Gracias por el consejo. Además, ¿tuvo que crear un archivo oauth_admin.php usted mismo? (perdón si esto se explica en el artículo vinculado, pero pensé en preguntarle porque lo tiene funcionando (:-).
— user2636834

Respuestas:


2

Entonces, @ user2636834, ¿ya te diste cuenta de esto?

Recuerdo que cuando estaba configurando un escenario de prueba, recibí los errores de Sames. Parecía que no tenía instalado Oauth: O. En resumen, lo hice (ejecutando Ubuntu y siguiendo estas instrucciones , también me encuentro con este error ):

pecl install oauth

Luego agregue extension=oauth.soa php.inila sección "Extensiones dinámicas". Luego reinicie Apache

Probé los ejemplos del sitio de Magento y obtuve un error de la API:

"Autenticación no válida / solicitud incorrecta"

Tuve que agregar un 'Accept' => '*/*'encabezado a la $oauthClient->fetch()llamada. Después de eso funcionó todo bien.

Espero que puedas hacer funcionar las cosas si aún no lo hubieras hecho.


Publiqué un problema similar aquí -> magento.stackexchange.com/questions/63611/… . He intentado añadir 'Accept' => '*/*'a $oauthClient->fetch(), y aún así obtener una 403 Forbiddenrespuesta. Alguien más dijo que resolvió el 403 después de instalar SSL. ¿Es eso realmente necesario? (para ser claros, tengo instalado Oauth y solo recibo un error 403, ningún otro error)
— gtr1971
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.