2015-02-26 2 views
1

У меня возникла эта проблема. Я включил веб-сервис из prestashop, и я могу получить к нему доступ, если я напишу URL-адрес, напрямую передающий параметр из метода post http://underwearstudio.mx/pruebas/api?&ws_key= «mykey».API-интерфейс Prestashop Web Service запрашивает аутентификацию

Но если я пытаюсь получить доступ, не передавая параметр ws_key, он продолжает просить меня аутентифицироваться.

Из того, что я прочитал при запросе аутентификации, вам необходимо использовать ключ API в качестве имени пользователя и оставить пустой пароль, но он просто продолжает запрашивать аутентификацию.

Что я могу сделать?

Я пытался с этим руководством. (http://doc.prestashop.com/display/PS15/Chapter+2+-+Discovery+-+Testing+access+to+the+web+service+with+the+browser)

Любая помощь будет принята с благодарностью

ответ

0

С their documentation, похоже, что вы должны быть в состоянии поставить ваш ключ API в URL вместо где имя пользователя будет идти в обычном запросе HTTP, например:

http://[yourapikeyhere]@example.com/api/customers/ 

Эта цитата из «Проверка доступа к веб-службы с браузером»:

Магазин должен запросить у вас имя пользователя и пароль для ввода. Идентификатор - это ключ аутентификации, и пароль отсутствует.

... похоже, соответствует тому, что вы сказали о имени пользователя и пароле. Похоже, эти ребята используют ключ API в качестве имени пользователя в обычном смысле базовой аутентификации HTTP без пароля (иначе это будет http://user:[email protected]), что, похоже, соответствует примеру URL-адреса RESTful, приведенному выше. Если базовая проверка подлинности через ваш браузер не работает, я бы предположил, что более вероятно, что ваш ключ API неверен - имейте в виду, что он очень чувствителен к регистру.

+0

Я уже сделал это, и он продолжает запрашивать имя пользователя и пароль, на самом деле это было первое, что я пробовал. Спасибо –

+1

@JuanJaimeEduardoMontemayor Вы решили эту проблему? У меня такая же точная проблема. – Jeremy

9

Для Googlers, таких как про себя:

как в текущей версии 1.6.1.1, один нужно добавить этот код [?&ws_key=YourSecretKey] в конце URL и получить доступ к веб-сервиса с помощью этого метода, как мимоходом в качестве имени пользователя (указано в документации) не работает

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()) 

и непосредственно перед инициализацией Скручивание

$session = curl_init($url); 

, который я предложил в this request

Вы можете найти работу Библиотека в this gist на данный момент

+0

, следуя ссылке вашего запроса, кто-то ответил, что серверу не хватает некоторых конфигураций AND/OR правильно сформированного файла .htaccess, знаете ли вы, какие из них являются confs или htaccess? –

+0

@ MatteoBononi'peorthyr «возможно, то, что вы ищете, это второй ответ здесь, но я заверяю вас, что мои обходные работы –

1

Просто создайте.htaccess в папке webservice с:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 
+0

это было мое дело, и решить постоянную проблему религии. – Mike

Смежные вопросы