更新:对API的所有调用都会收到以下响应:
failed [500] An error has occurred
奇怪的是,我的身份验证过程(记录为here)完美无缺,而对API的所有调用(记录为here)都失败了。
Bigcommerce API正在从基本身份验证过渡到oAuth。 documentation因此有点令人困惑。
我正在尝试使用新的oAuth方法创建一个webhook。 documentation表示我需要为相关商店提供oAuth access_token,这是我获得的。
documentation还包含示例http请求数据:
{
"scope": "store/order/*",
"headers": {
"X-Custom-Auth-Header": "{secret_auth_password}"
},
"destination": "https://app.example.com/orders",
"is_active": true
}
在这种情况下,我假设{secret_auth_password}
指的是商店的access_token。但是,当我在这里包含access_token时,我收到以下错误:
failed [401] You are not authorized.
认为这可能是一个范围/权限问题,我通过应用程序设置为我的应用程序提供了最高级别的访问权限,但这也不起作用。
提前感谢任何指示。
答案 0 :(得分:1)
经过几天严重的头疼(更不用说头发撕裂)我发现我的 SSL中间证书中出现了错误,我有现在已经修好了。
旧 API返回错误“UNABLE_TO_VERIFY_LEAF_SIGNATURE”,这使我走上正轨 - 刚刚返回的新API:
500 – there is an error
或
404 – you are not authorized.
答案 1 :(得分:0)
如果您使用的是PHP,我建议您使用结合OAuth拉取请求的Webhooks拉取请求。它们都在一起工作(我个人使用它们)。
Webhooks pull - https://github.com/bigcommerce/bigcommerce-api-php/pull/101
OAuth pull - https://github.com/bigcommerce/bigcommerce-api-php/pull/88
然后,要创建一个webhook,您只需拨打createWebhook($object)
对象需要包含scope
和destination
。
另外 - 旁边注释..您是否使用SSL作为目标地址。它不会起作用。您可以使用自签名证书来解决这个问题。
这仅适用于设置webhook。
要真正接收它们,您需要有效的证书(否则您什么也得不到)。
希望这有帮助。
答案 2 :(得分:0)
我遇到了相同的文档部分,也对它感到困惑。要为webhook发送的正确标头如下:
"X-Auth-Client":"[YOUR_APPS_CLIENT_ID]",
"X-Auth-Token":"[OAUTH_ACCESS_TOKEN]"
答案 3 :(得分:0)
除了使用@ FlyingL123建议的标题外,还要注意BigCommerce所述的要求:
要求
需要以下Webhooks属性。请求 除非这些属性有效,否则不会被履行。
scope destination