php api authentication get prestashop

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>