3

Я создал ключ потребителя и секрет потребителя. На веб-сайте установлен SSL. Я также установил плагины, необходимые для служб JSON и REST. Это как URL выглядит следующим образом:WooCommerce - woocommerce_rest_cannot_view - Статус 401

https://<url>/wp-json/wc/v1/products 

Когда я пытаюсь получить (GET) детали продукта с использованием базовой аутентификации с помощью почтальона плагин Chrome, я получаю ответ JSON, как:

{ 
    "code": "woocommerce_rest_cannot_view", 
    "message": "Sorry, you cannot list resources.", 
    "data": { 
    "status": 401 
    } 
} 

У меня есть разрешения READ и WRITE, соответствующие клавише Consumer.

ответ

6

Я встретил ту же проблему.

Вот как я решить:

require "woocommerce_api" 

woocommerce = WooCommerce::API.new(
    "https://example.com", 
    "consumer_key", 
    "consumer_secret", 
    { 
    wp_json: true, 
    version: "wc/v1", 
    query_string_auth: true 
    } 
) 

Ключ query_string_auth: true вам необходимо заставить базовую аутентификацию в качестве строки запроса истинны при HTTPS

1

Это, как я перестал беспокоиться и пошел дальше.

Вкратце, контроллеры отдыха woocommerce почти все имеют метод SOMEWPRESTCLASS::get_item_permissions_check(), который, в свою очередь, вызывает wc_rest_check_post_permissions(), чтобы решить, возвращает ли он эту ошибку;

Таким образом, вы крюк в том, что и проверки в зависимости от того, как вы хотите:

add_filter('woocommerce_rest_check_permissions', 'my_woocommerce_rest_check_permissions', 90, 4); 

function my_woocommerce_rest_check_permissions($permission, $context, $object_id, $post_type ){ 
    return true; 
} 
1

Пытаясь помочь другим: я изо всех сил с 401 ответ, пытаясь свернуться, а также с VBA пытается запросить как содержание -типа «приложения/JSON» Однако, я был в состоянии вытащить правильный ответ, введя это в моем адресной строке браузера: https://mywebsite.com/wp-json/wc/v2/products?consumer_key=ck_blahblah&consumer_secret=cs_blahblah

После этой мысли, я вернулся в мое приложение VBA и изменил тип контента на «приложение/текст» и смог вытащить действительный текст ответа с кодом ответа 200. Надеюсь, это поможет кому-то.

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