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.

usuario2636834
fuente
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.

7ochem
fuente
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