3

私はコンシューマーキーとコンシューマーシークレットを生成しました。このWebサイトにはSSLがインストールされています。 JSONとRESTサービスに必要なプラグインもインストールしました。WooCommerce - woocommerce_rest_cannot_view - Status 401

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

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

私はPOSTMAN、クロームのプラグインを使用して基本認証を使用して(GET)製品の詳細情報を取得しようとしています、私のようなJSONレスポンスを取得する:これは、URLがどのように見えるかです

私は、コンシューマーキーに対応するREADとWRITEの両方の権限を持っています。

答えて

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 
    } 
) 

キーを使用すると、これは私が心配停止し、上に移動する方法ですHTTPS

1

の下で真のクエリ文字列として基本認証を強制する必要がquery_string_auth: true です。

つまり、woocommerce残りのコントローラはすべて、SOMEWPRESTCLASS::get_item_permissions_check()メソッドを持っています。このメソッドは、wc_rest_check_post_permissions()を呼び出して、エラーを返すかどうかを判断します。

だから、あなたはどちらかあなたが望むようにそれをフックと検証:私はカールしようとしているときに401応答で苦労し、また、VBAをコンテンツとして要求しようとした :

他人を助けようとし
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

思考のこの行の後、私は戻って私のVBAアプリへ行き、変更

https://mywebsite.com/wp-json/wc/v2/products?consumer_key=ck_blahblah&consumer_secret=cs_blahblah

:しかし、私はちょうど私のブラウザのアドレスバーでこれを入力することで、有効な応答を引くことができた「アプリケーション/ jsonの」 を-typeコンテンツタイプを「アプリケーション/テキスト」に、応答コード200の有効な応答テキストを引き出すことができました。 これが誰かを助けることを願っています。