2014-02-20 122 views
3

我最近更新到WooCommerce 2.1的最新版本,其中包括new RESTful API。 我沒有太多關於cURL或RESTful API的經驗,但我想我已經玩了一下。RESTful API - WooCommerce REST API請求失敗,捲曲

我的網站是sergedenimes.com,我在服務器上設置了SSL。

如果我跑curl https://sergedenimes.com/wc-api/v1我得到JSON輸出的漂亮的長有點像這樣:

{ 
    "store":{ 
     "name":"Serge DeNimes", 
     "description":"Original, Urban T-Shirts Of The Highest Quality by Oliver Proudlock", 
     "URL":"http:\/\/sergedenimes.com", 
     "wc_version":"2.1.2", 
     "routes":{ 
     "\/":{ 
      "supports":[ 
       "HEAD", 
       "GET" 
      ], 
      "meta":{ 
       "self":"http:\/\/sergedenimes.com\/wc-api\/v1\/" 
      } 
     }, 
     "\/customers":{ etc..... 

這表明本身是工作的API。然而,當我通過使用身份驗證請求:

curl https://sergedenimes.com/wc-api/v1/orders -u my_key:my_secret 

我得到這樣的迴應:

{ 
    "errors":[ 
     { 
     "code":"woocommerce_api_authentication_error", 
     "message":"Consumer Key is missing" 
     } 
    ] 
} 

是我的語法是否正確?我已經在WP管理員身上設置了我的密鑰和祕密,並且傳遞了值,但似乎認爲我沒有通過我的請求傳遞它。

任何想法?

+0

我卡在你的同一個地方。你能分享完整的網址嗎? – khanghoang

+0

完整的網址在我的問題中。格哈德的回答已經解決了它。如果您仍然遇到問題,那麼如果您的服務器與頭中發送的身份驗證發生衝突(僅限基本身份驗證),則將身份驗證憑據作爲GET參數傳遞可能是一種解決方法。例如。 'https://example.com/wc-api/v1/orders?consumer_key = ck_7xxxxx&consumer_secret = cs_7xxxxxx' – harryg

+0

另外,[郵遞員](https://chrome.google.com/webstore/detail/postman-rest-client/) fdmmgilgnpjigdojojpjoooidkmcomcm?hl = en)是一個非常方便的工具,用於測試API而不會捲曲捲曲等。 – harryg

回答

6

確保您在WooCommerce - > Settings - > Checkout下啓用了安全結帳選項。如果您啓用了該選項,它將只使用基本身份驗證。

+0

這似乎解決了它。謝謝。 – harryg

+2

我也寫了這個方便的客戶端庫,使與API交互更容易http://gerhardpotgieter.com/2014/02/10/woocommerce-rest-api-client-library/ – Gerhard

+0

是的我偶然發現,雖然在我的谷歌搜索。我一定會提及它應該是否需要實際使用API​​。我想這是最有用的命令履行者,我會參考我們目前的供應商的相關工具。 (他們目前使用CSV導出) – harryg