Проблема с аутентификацией в WooCommerce REST API

6 нояб. 2017 г., 08:12:18
Просмотры: 14.4K
Голосов: 4

Я использую Postman для проверки вызовов REST API в WooCommerce. Когда я вызываю стандартные API WooCommerce, появляется ошибка:

{
"code": "woocommerce_rest_cannot_create",
"message": "Извините, у вас нет прав на создание ресурсов.",
"data": {
    "status": 401
   }
}

Эта ошибка появляется при использовании Basic Authentication и POST метода для API создания клиентов.

А при попытке вызвать API отображения продуктов через cURL:

http://example.com/wp-json/wc/v2/products

С использованием GET метода в Postman появляется следующая ошибка:

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

Буду очень благодарен, если кто-то поможет мне решить эту проблему. Спасибо.

1
Комментарии

Используйте аутентификацию HTTPS в Postman вместо oAuth1.0 в качестве метода аутентификации. Примените Basic-аутентификацию, передавая consumer key как имя пользователя. А в качестве пароля укажите consumer secret.

LumberHack LumberHack
6 нояб. 2017 г. 13:55:25
Все ответы на вопрос 5
0

Я нашел решение для этого. Используйте базовую аутентификацию из Postman.

Спасибо

23 июн. 2018 г. 05:23:56
0

Я также столкнулся с такой же проблемой, пробовал в Postman, PHP, NodeJs - везде, потратил почти 2 дня без результата, но наконец начал получать ответ после добавления слеша в конце URL.

Имею в виду:

Изначально я использовал https://example.com/wp-json/wc/v3/products?consumer_key=ck_XXXX&consumer_secret=cs_XXXX но изменил на такой вариант https://example.com/wp-json/wc/v3/products/?consumer_key=ck_XXXX&consumer_secret=cs_XXXX (Просто добавил слеш перед вопросительным знаком в начале строки запроса).

В Postman, даже без установки каких-либо настроек Authorization (Type = No Auth), я начал получать ответы.

Возможно, это как-то связано с моим .htaccess, но я подумал, что будет полезно опубликовать это решение здесь.

4 авг. 2021 г. 10:52:06
0

Для меня это была проблема аутентификации.

Я использовал Basic auth для Postman

Просто выберите OAuth 1.0 в качестве типа аутентификации и укажите ключ потребителя и секретный ключ в соответствующих полях

Скриншот:

postman-woocommerce-API - Настройка аутентификации OAuth 1.0 в Postman

7 апр. 2022 г. 14:52:47
0
-1

Если вы используете базовую аутентификацию, убедитесь, что Apache передаёт заголовок Authorization. В ваш файл http.conf добавьте строку: SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

27 июл. 2019 г. 22:23:00
1
-1

Убедитесь, что вы предоставили пользователю права на чтение и запись, а также проверьте файл .htaccess. Попробуйте вставить этот код в ваш .htaccess и проверьте снова:

# BEGIN WordPress
# Директивы (строки) между `BEGIN WordPress` и `END WordPress` являются
# динамически генерируемыми и должны изменяться только через фильтры WordPress.
# Любые изменения директив между этими маркерами будут перезаписаны.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
27 июл. 2020 г. 13:22:46
Комментарии

Пожалуйста, [отредактируйте] ваш ответ и добавьте объяснение: почему это может решить проблему?

fuxia fuxia
27 июл. 2020 г. 21:39:30