【问题标题】:RESTful API - WooCommerce REST API requests failing with curlRESTful API - WooCommerce REST API 请求因 curl 失败
【发布时间】:2014-03-21 11:25:44
【问题描述】:

我最近更新到最新版本的 WooCommerce 2.1,其中包括 new RESTful API。 我对 cURL 或 RESTful 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 管理员下设置了我的密钥和秘密并传递了值,但似乎认为我没有通过我的请求传递它。

有什么想法吗?

【问题讨论】:

  • 我卡在你的同一个地方。可以分享完整的网址吗?
  • 完整的 URL 在我的问题中。 @Gerhard 的回答已经解决了。如果您仍然遇到问题,如果您的服务器难以处理在标头中发送的身份验证(仅限基本身份验证),则将身份验证凭据作为 GET 参数传递可能是一种解决方法。例如。 https://example.com/wc-api/v1/orders?consumer_key=ck_7xxxxx&consumer_secret=cs_7xxxxxx
  • 另外,Postman 是一个方便的工具,用于测试 API 而无需摆弄 curl 等。

标签: api rest woocommerce restful-authentication


【解决方案1】:

确保您在 WooCommerce -> 设置 -> 结帐下启用了安全结帐选项。如果您启用了该选项,它将仅使用基本身份验证。

【讨论】:

  • 我还编写了这个方便的客户端库,以使与 API 的交互更容易gerhardpotgieter.com/2014/02/10/…
  • 是的,我在谷歌搜索时偶然发现了这一点。如果我需要实际使用 API,我一定会参考它。我想订购履行者最有用,我会将我们当前的供应商推荐给相关工具。 (他们目前使用 CSV 导出)
  • 嗨格哈德。我有同样的问题。我也更改了结帐,但仍然是同样的错误。你能帮我么? [stackoverflow.com/questions/25699089/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-11
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
  • 2021-11-04
相关资源
最近更新 更多