【问题标题】:Magento REST API /Product Call Returns Empty JSON ArraysMagento REST API /产品调用返回空 JSON 数组
【发布时间】:2013-06-03 20:00:32
【问题描述】:

我正在尝试使用 Magento REST API 来获取我的 Magento 安装中所有产品的列表。

我已成功使用 OAuth 进行身份验证,并且正在调用“LINK TO API/products”——但它只返回一个空数组数组,如下所示:

{"11":[], "12":[], "13":[], "14":[], "15":[], "16":[], "17":[]}

11、13、13 等是我商店中产品的 ID。所以它肯定会找到产品,但它不会随 ID 一起发送任何产品详细信息,ID 应该在与 ID 关联的 JSON 数组中。

以前有没有人遇到过这个问题并且能够解决它?

下面是我用来访问 API 的代码。

$oauthClient->fetch($resourceUrl, array(), 'GET', array('Content-Type' => 'text/xml'));

提前致谢,

丹尼

【问题讨论】:

    标签: php api magento rest oauth


    【解决方案1】:

    Danny 我会检查您的 REST 用户的 ACL,听起来您没有授予它访问您正在寻找的特定字段的权限。此外,我注意到使用“全部”时的错误将与“自定义”相同,没有任何检查。

    要获得这些功能,请访问:

    System > Web Services > REST - Attributes
    
    1. 选择用于连接的帐户[推荐管理员]
    2. 然后验证[ACL 属性规则]
    3. 再次使用“自定义”并选择您要确保存储它们的每一个。

    【讨论】:

    • 我遇到了和 OP 一样的问题。我试过这个,但没有帮助。我还发现在System > Web Services > REST - Roles 中,您可以单击一个角色来查看另一个 ACL ......这个定义了操作而不是属性。 (我想这很方便,因为您可以拥有多个管理员角色,因此除了为管理员“用户类型”设置 ACL 之外,您还可以为每个管理员角色设置不同的 ACL。)但即使这样也无济于事。我已授予 Customer 角色对所有产品操作和属性的权限,但我仍然得到空数组的数组。
    • @DougMcLean 这里有同样的问题。你有没有找到解决方案?如果你还记得那么久……
    • @bredon IIRC 这只是一个愚蠢的缓存问题-进入系统>缓存管理并单击“刷新 Magento 缓存”似乎不起作用,但单击“刷新缓存存储”按钮同一页成功了。至少我认为是……!哦,还有一件事:确保您实际上是使用您认为的角色访问 API。有时身份验证会静默失败,您会退回到访客角色。在这种情况下,一个简单的测试是更改 Guest 的属性 ACL 并查看是否有任何更改。祝你好运!
    猜你喜欢
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2019-08-09
    相关资源
    最近更新 更多