WooCommerce Rest API woocommerce_rest_cannot_create

Я пытаюсь опубликовать продукт в WooCommerce Rest API с помощью Postman, и ниже приведен код, созданный в Javascript с помощью Postman

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://woocommerce.dev/wp-json/wc/v1/products",
  "method": "POST",
  "headers": {
    "content-type": "application/json",
    "authorization": "OAuth oauth_consumer_key=\\\"ck_da643d25cb86d32dcf1c4a684ba0fdad4acd67ce\\\",oauth_signature_method=\\\"HMAC-SHA1\\\",oauth_timestamp=\\\"1469615598\\\",oauth_nonce=\\\"oOOqcB\\\",oauth_version=\\\"1.0\\\",oauth_signature=\\\"jf%2FepKymwW9IFlv7fwHFTA3aNs8%3D\\\"",
    "cache-control": "no-cache",
    "postman-token": "2202e03b-243e-96c5-8e77-fcc8919aedbc"
  },
  "processData": false,
  "data": "{\n  \"name\": \"Premium Quality\",\n  \"type\": \"simple\",\n  \"regular_price\": \"21.99\",\n  \"description\": \"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.\",\n  \"short_description\": \"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.\",\n  \"categories\": [\n    {\n      \"id\": 9\n    },\n    {\n      \"id\": 14\n    }\n  ],\n  \"images\": [\n    {\n      \"src\": \"http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg\",\n      \"position\": 0\n    },\n    {\n      \"src\": \"http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg\",\n      \"position\": 1\n    }\n  ]\n}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

В ответ я получаю следующий ответ со статусом 401 unauthorized

{
  "code": "woocommerce_rest_cannot_create",
  "message": "Sorry, you are not allowed to create resources.",
  "data": {
    "status": 401
  }
}

Принимая во внимание, что с теми же учетными данными я могу успешно получать данные с помощью метода GET на той же конечной точке, чтобы получить все продукты

http://woocommerce.dev/wp-json/wc/v1/products

Кроме того, в WooCommerce я уже дал разрешение на чтение / запись пользователю с этими учетными данными.


person Abdul Bari    schedule 27.07.2016    source источник
comment
Вы нашли решение для этого, если да, поделитесь, пожалуйста. это будет полезно.   -  person Madhan    schedule 08.08.2016


Ответы (1)


После почти двух ночей изучения этого вопроса он был связан с этой проблемой: https://github.com/WP-API/Basic-Auth/issues/35

Измените свой .htaccess, чтобы базовая аутентификация работала, как показано в этом комментарии: https://github.com/WP-API/Basic-Auth/issues/35#issuecomment-244001216

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

Правило должно быть первым правилом перезаписи в блоке.

person droa6    schedule 08.09.2016
comment
Это устранило проблему для меня - person Jordash; 14.06.2018
comment
Я сделал то же самое, но у меня это не сработает с методом HTTP. - person Jitendra Popat; 28.07.2020