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.
fuente
Respuestas:
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 ):
Luego agregue
extension=oauth.so
aphp.ini
la sección "Extensiones dinámicas". Luego reinicie ApacheProbé los ejemplos del sitio de Magento y obtuve un error de la API:
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.
fuente
'Accept' => '*/*'
a$oauthClient->fetch()
, y aún así obtener una403 Forbidden
respuesta. 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)