Не удается POST/PUT/DELETE любых продуктов в WooCommerce с помощью REST API
Я использую Wordpress 4.7.1
с плагином Woocommerce 2.6.13
с включенным REST API. Я создал учетные данные пользователя из пользовательского интерфейса консоли с разрешениями read_write
.
Теперь я пытаюсь использовать продукты GET с помощью OAuth1:
service return 200 OK, учетные данные являются правильными.
то я пытаюсь УДАЛИТЬ какой-то продукт:
или пытается создать новый продукт:
возврат службы 401 Несанкционированный.
Что не так?
UPD1:
.htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
Ответы
Ответ 1
Каковы роли пользователя, связанного с ключами API?
У меня были некоторые ошибки авторизации с API Woocommerce, хотя ключи API имели права на чтение/запись. После того, как я проверил параметры ключей API Woocommerce в Wordpress, я заметил, что пользователь, связанный с ключами, которые я использовал, не имел никаких ролей Woocommerce, таких как Customer, Shop Manager или Admin.
После сопоставления администратора с некоторыми новыми ключами API я решил проблему и мог разрешить все конечные точки API.
Поскольку вы авторизованы только для некоторых конечных точек, это может быть одна и та же проблема. Пользователь, связанный с ключами API, вероятно, не имеет роли с разрешениями на удаление.
Ответ 2
Используется метод API старой версии. Используйте последнюю версию с обновленным плагином woocommerce. Вы также можете следовать этой ссылке
https://woocommerce.github.io/woocommerce-rest-api-docs/?php#delete-a-product