php - Prestashop Web Service API sigue pidiendo autenticación
authentication get (3)
Estoy teniendo este problema, habilité el servicio web desde prestashop y puedo acceder a él si escribo la URL pasando directamente el parámetro desde el método de publicación http://underwearstudio.mx/pruebas/api?&ws_key= "mykey".
Pero si trato de acceder sin pasar la clave ws_key como parámetro, sigue pidiéndome que me autentique.
Según lo que leí cuando se solicitó la autenticación, debe usar la clave API como nombre de usuario y dejar la contraseña en blanco, pero solo sigue solicitando la autenticación.
¿Que puedo hacer?
Intenté seguir este tutorial. ( Http://doc.prestashop.com/display/PS15/Chapter+2+-+Discovery+-+Testing+access+to+the+web+service+with+the+browser )
Cualquier ayuda sería muy apreciada
De su documentación , parece que debería ser capaz de poner su clave API en la URL en lugar de donde iría un nombre de usuario en una solicitud HTTP normal, por ejemplo:
http://[yourapikeyhere]@example.com/api/customers/
Esta cita de "Prueba de acceso al servicio web con el navegador":
La tienda debe solicitarle un nombre de usuario y una contraseña para ingresar. El ID es la clave de autenticación y no hay contraseña.
... parece coincidir con lo que dijiste sobre el nombre de usuario y la contraseña. Parece que estos tipos usan la clave API como el nombre de usuario en un sentido de autenticación HTTP normal sin contraseña (de lo contrario sería http://user:[email protected]
), lo que parece coincidir con el ejemplo RESTful URL ellos proveyeron arriba. Si la autenticación básica a través de su navegador no funciona, le sugiero que es más probable que su clave API esté equivocada. Tenga en cuenta que es muy probable que distinga entre mayúsculas y minúsculas.
Para googlers como yo:
como en la versión actual, 1.6.1.1, es necesario agregar este código [ ?&ws_key=YourSecretKey
] al final de la url y acceder al servicio web con este método, ya que el pasar como nombre de usuario (indicado en los documentos) no funciona
http://[YourPrestaShopUrl]/api?&ws_key=YourSecretKey
eg: http://192.168.1.148/api/products?limit=5&ws_key=EUQ1J6NT1KVJ1S9SYGRCLGQE8IJU66DA
Para lograr esto usando la biblioteca de servicios web , puede agregar esta línea:
$url .= ''&ws_key='' . $this->key;
en la línea 116 (en la versión actual), que está en el
protected function executeRequest($url, $curl_params = array())
y justo antes de inicializar el cURL:
$session = curl_init($url);
que he propuesto en esta solicitud
Puede encontrar la Biblioteca de trabajo en este momento por ahora
Simplemente cree un .htaccess dentro de la carpeta webservice con:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>