3

Ich habe einen Consumer Key und Consumer Secret generiert. Die Website hat SSL installiert. Ich habe auch Plugins installiert, die für JSON- und REST-Dienste benötigt werden. Dies ist, wie die URL wie folgt aussieht:WooCommerce - woocommerce_rest_cannot_view - Status 401

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

Wenn ich versuche, die Produktdetails Grund Auth mit zu bekommen (GET) von POSTMAN verwenden, ein Chrome-Plugin, habe ich eine JSON-Antwort erhalten wie:

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

Ich habe sowohl die READ und WRITE-Berechtigungen für den Consumer-Schlüssel.

Antwort

6

Ich traf das gleiche Problem.

Hier ist, wie ich es lösen:

require "woocommerce_api" 

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

Der Schlüssel ist query_string_auth: true Sie die Standardauthentifizierung als Query-String wahr unter HTTPS

1

zwingen müssen, Dies ist, wie ich aufgehört sich Gedanken und ging weiter.

Kurz gesagt, haben die Woocommerce Rest Controller ziemlich alle eine SOMEWPRESTCLASS::get_item_permissions_check() Methode, die wiederum wc_rest_check_post_permissions() ruft, um zu entscheiden, ob sie diesen Fehler zurückgibt;

Sie also in die Haken und validieren je nachdem, welche Art und Weise Sie wollen:

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

Der Versuch, anderen zu helfen: ich mit der 401-Antwort zu kämpfen hatte, während sich zu kräuseln versuchen, und auch mit VBA versuchen, als Inhalt anfordern Typ „application/json“ aber ich war in der Lage Adressleiste in meiner Browser eine gültige Antwort zu ziehen, indem nur diese Eingabe: https://mywebsite.com/wp-json/wc/v2/products?consumer_key=ck_blahblah&consumer_secret=cs_blahblah

nach diesem Gedankengang, ging ich App zu meinem VBA zurück und änderte die Inhaltstyp zu "Anwendung/Text" und konnte einen gültigen Antworttext mit Antwortcode 200 ziehen. Hoffe das hilft jemandem.

Verwandte Themen