使用带有GET过滤器的Magento Rest API时oauth_signature无效错误

时间:2015-04-06 15:09:04

标签: node.js rest magento oauth

当我使用像http://localhost/magento/api/rest/orders/?filter[1][attribute]=entity_id&filter[1][gt]=70&page=1&limit=100这样的GET过滤器

时,我很难从Magento REST API获取订单

提出错误":[{"代码":401,"消息":" oauth_problem = signature_invalid"}]

当我尝试使用像Postman这样的REST客户端访问相同的API端点时,我收回了所需的结果JSON。

我怀疑过滤器查询中的方括号可能导致生成Oauth签名时出现问题。没有GET过滤器的所有端点都工作正常。 我使用Request节点模块使用oauth标头发出GET请求。

是否有任何修复可以避免signaturre无效错误?

3 个答案:

答案 0 :(得分:2)

问题出在我用来生成OAuth签名的Request节点模块中。它没有考虑URL中的方括号。我修改了模块中包含方括号的代码。更改OAuth签名生成方法为我修复了

答案 1 :(得分:0)

由于我花了一点时间才弄清楚如何做到这一点,我想我会传递我学到的东西。我的目标是向Magento的REST API发出单一请求,以返回具有特定订单状态的订单。在看到最后一行之前,查看GET过滤器文档页面并没有什么用处。以下是我提出的有效的请求:

http://magentohost.com/api/rest/orders?filter[1][attribute]=status&filter[1][in][1]=pending&filter[1][in][2]=processing 上述请求将为您提供状态为“待处理”或“正在处理”的所有订单的列表。

参考:http://magentoforce.com/2014/08/magento-rest-api-multiple-in-get-filters/

答案 2 :(得分:-1)