我已经构建了一个小程序,帮助识别Demandware中状态不正确的订单,例如:(状态:新的,打开的,已完成的和发货状态:未发货,已发货)。
我基本上只使用OCAPI的order_search并将结果与我们的ERP进行比较。
但是现在我想自动修复一些状态,这需要我使用/ orders / {order_no} GET和PATCH调用,但是当我这样做时,我收到以下消息:
{ type: 'AccessWithoutUserForbiddenException',
message: 'An authenticated user is required in order to access resource.' }
根据文档,订单的OAUTH使用:“通过OAuth令牌进行身份验证。”,但订单/ {order_no}使用:“通过OAuth令牌进行身份验证。需要有效用户。”
那么成为有效用户的正确策略是什么?
答案 0 :(得分:2)
获取oAuth令牌的有效用户是Business Manager用户。因此,请登录到Business Manager并为您的用例创建新用户并授予必要的权限。
之后,您就可以执行特定资源。
基督教
答案 1 :(得分:0)
如果您使用account.demandware.com作为主机,它将抛出以下错误
{错误:“ unauthorized_client”,错误描述:“客户端ID” \'xxxxxxxxxxxxxxxxxxx \'的凭据无效,无法使用授权类型 \'urn:demandware:params:oauth:grant-type:client-id:dwsid:dwsecuretoken \'。 }
相反,您可以将主机更改为沙箱主机。再试一次。它应该工作。我也面临着同样的问题。
const key = new Buffer('business_manager_email_id' + ":" + 'business_manager_pwd' + ":" + 'client_pwd').toString("base64");
const options = {
url: 'https://<sandbox_host>/dw/oauth2/access_token?client_id=your_client_id',
method: "POST",
headers: {
'Authorization': "Basic " + key,
"Content-Type": "application/x-www-form-urlencoded",
},
body: "grant_type=urn:demandware:params:oauth:grant-type:client-id:dwsid:dwsecuretoken"
};