Невозможно отобразить ошибку ресурсов из WooCommerce REST API

Я новичок в WordPres`, впервые использую плагин WooCommerce и хочу использовать WooCommerce REST API в своем приложении для Android.

Я включил REST API и создал ключ потребителя, а также секрет потребителя.

Теперь, когда я использую этот URL http://www.my-domain.com/wp-json/wc/v1/products/ в моем браузере, чтобы проверить, работает ли API, я получаю следующую ошибку:

{"code": "woocommerce_rest_cannot_view", "message": "Извините, вы не можете перечислить ресурсы.", "data": {"status": 401}}

SSL не установлен на моем сервере. Как я могу это исправить? Нужно ли мне использовать клиентскую библиотеку PHP?


person DD77    schedule 04.03.2017    source источник


Ответы (3)


Для «нового» API версии 2 (а не API «устаревшей версии 2»):

  • Для безопасных соединений (HTTPS) вам необходимо использовать «Базовую аутентификацию».
  • Для незащищенных соединений (HTTP) необходимо использовать «аутентификацию oAuth1».

Если вы используете неправильную аутентификацию с неправильным подключением, вы получите ответное сообщение 401.

Это описано в документации API WooCommerce: https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication-over-https.

Также обратите внимание, что обычно вы передаете CK и CS в качестве полей заголовка, но в зависимости от того, как настроен сервер, вы можете обнаружить, что он не будет правильно анализировать поля заголовка, поэтому вы можете добиться успеха, если включите CK и CS. в URL-адресе в качестве параметров:

https://website.tld/wp-json/wc/v1/products?consumer_key=[key]&consumer_secret=[secret]

person KolonUK    schedule 06.07.2018
comment
Это верно и для v3. Например, если вы работаете на локальном хосте, просто используйте OAuth 1.0, предоставив только ключ потребителя и секрет потребителя, а все остальные свойства оставьте пустыми. - person delucasvb; 29.11.2018
comment
Рабочее очарование. Спасибо - person Alizain Prasla; 16.03.2019

Для будущих гуглеров ... Мне нужно было добавить это в свой .htaccess

Требуется для WooCommerce API

RewriteRule ^ index.php $ - [E = HTTP_AUTHORIZATION:% {HTTP: Authorization}, L]

person Tony Petruzzi    schedule 21.10.2020
comment
Этот ответ меня спас. Для проверки HTTP я исправил с Basic Auth на oAuth 1.0. Но пока не работает. После добавления этой строки в .htaccess файл все заработало. - person Felix Htoo; 09.06.2021

Вы получаете ответ 401 от сервера. Этот ответ указывает на то, что вы не авторизованы для этой конечной точки REST. Чтобы использовать woocommerce api, вам необходимо указать свою авторизацию в запросе.

Здесь есть примеры и документация: http://woocommerce.github.io/woocommerce-rest-api-docs/#authentication

Примеры woocommerce не включают примеры java. (Я предполагаю, что это то, что вы используете в своем приложении для Android). Однако есть сторонняя java-библиотека для woocommerce. Его можно найти здесь: https://github.com/icoderman/wc-api-java < / а>

Я лично не использовал эту библиотеку, но она должна содержать все функции, которые вам понадобятся для авторизации и правильного запроса данных из woocommerce api.

person DeezPineapples    schedule 05.03.2017
comment
Хорошо! а как включить в запрос авторизацию? - person DD77; 05.03.2017
comment
Если вы перейдете по ссылке, которую я опубликовал, вы увидите простые примеры, которым вы можете следовать. - person DeezPineapples; 06.03.2017