我遇到这个问题我从prestashop启用了web服务,如果直接从post方法传递参数,我可以访问它 http://underwearstudio.mx/pruebas/api?&ws_key= “的myKey”。
但如果我尝试访问而不传递ws_key作为参数,它会一直要求我进行身份验证。
根据我在提示身份验证时所阅读的内容,您需要使用API密钥作为用户名并保留空密码,但它只是不断提示身份验证。
我该怎么办?
非常感谢任何帮助
答案 0 :(得分:12)
对于像我这样的谷歌:
与当前版本1.6.1.1一样,需要在url的末尾添加此代码[?&ws_key=YourSecretKey
]并使用此方法访问webservice,作为用户名传递(在文档中说明) )不起作用
http://[YourPrestaShopUrl]/api?&ws_key=YourSecretKey
eg: http://192.168.1.148/api/products?limit=5&ws_key=EUQ1J6NT1KVJ1S9SYGRCLGQE8IJU66DA
要使用the webservice library完成此操作,您可以添加以下行:
$url .= '&ws_key=' . $this->key;
在第116行(当前版本),在
中 protected function executeRequest($url, $curl_params = array())
在初始化cURL之前:
$session = curl_init($url);
我在this request 中提出的
您现在可以在this gist找到工作库
答案 1 :(得分:2)
只需在webservice文件夹中创建一个.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
答案 2 :(得分:1)
您好我也遇到了同样的问题,如果你想避免prestashop的认证,那么你可以在api url中添加该prestashop商店的消费者密钥,如下所示
http://localhost:8080/prestashop/api/products/2/?ws_key=TCXXHYPCT8DHWW64QXU1KEQVF4PQ1SJ6
在访问产品详细信息时,您可以添加消费密钥以访问产品详细信息。 如果您在其他平台中使用prestashop Web服务apis,它也很有用。 感谢
答案 3 :(得分:0)
从their documentation开始,您似乎应该能够将API密钥放入URL中,而不是用户名在常规HTTP请求中的位置,例如:
http://[yourapikeyhere]@example.com/api/customers/
引用“使用浏览器测试对Web服务的访问”:
商店应提示您输入用户名和密码。 ID是身份验证密钥,没有密码。
...似乎与您对用户名与密码的说法相符。看起来这些人正在使用API密钥作为常规HTTP基本身份验证意义上的用户名而没有密码(否则将是http://user:password@example.com
),这似乎与他们上面提供的RESTful URL示例相匹配。如果通过浏览器进行的基本身份验证无效,我建议您的API密钥更可能出错 - 请记住,它很可能是区分大小写的。
答案 4 :(得分:0)
从prestashop 1.7.4开始,他们提供了另一种方法。
ie;访问http://yourstore.com/api/
它将提示输入用户名/密码。
输入您作为用户名生成的密钥,并将密码字段保留为空。
这将为您提供类似的输出
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<api shopName="Tureds">
<products xlink:href="https://www.tureds.com/api/products" get="true" put="false" post="true" delete="false" head="false">
<description xlink:href="https://www.tureds.com/api/products" get="true" put="false" post="true" delete="false" head="false"> The products</description>
<schema xlink:href="https://www.tureds.com/api/products?schema=blank" type="blank"/>
<schema xlink:href="https://www.tureds.com/api/products?schema=synopsis" type="synopsis"/>
</products>
</api>
</prestashop>
记住