Magento Rest API Oauth URL返回404

时间:2013-01-23 04:00:08

标签: api magento rest oauth

来自Magento维基:

http://www.magentocommerce.com/api/rest/authentication/oauth_authentication.html#OAuthAuthentication-OAuthProcess

获取API令牌时,您可以通过以下方式获取未经授权的请求令牌来开始:

www.mystore.com/oauth/initiate

但是,我的代码不起作用,当我在浏览器中浏览上面的网址时,我得到了404.

我将商店商店代码附加到基本网址(例如www.mystore.com/en/)我不知道这是否会改变任何内容。

5 个答案:

答案 0 :(得分:13)

Magento Wiki有一个错字:

$adminAuthorizationUrl = 'http://yourhost/admin/oAuth_authorize';

应该是:

$adminAuthorizationUrl = 'http://yourhost/admin/oauth_authorize';

答案 1 :(得分:5)

我在这一天的大部分时间都在努力解决这个问题,所以这是一个迟到的贡献,以防它对任何人有所帮助:

Magento记录的授权URL admin / oauth_authorize假定您没有使用自定义URL进行管理员访问。 “admin”是访问Magento仪表板的标准URL,但许多人为了安全起见对其进行了更改。如果您已将管理员网址更改为“admin”以外的其他网址,请使用该网址。

如果你在https://yoursite.com/foo访问Magento仪表板,那么你的授权网址是foo / oauth_authorize。

答案 2 :(得分:4)

我遇到了同样的问题。没有太多类似的问题可以找到,也没有解决方案。这很奇怪,因为这似乎是一个缺少的配置选项'global / request / direct_front_name',它未在Core / Oauth模块中设置。如果没有这个重要的设置,所有教程如何工作?

如果没有“oauth”设置,每次调用/ oauth / [controller]都会导致“noRouteAction”被解析(参见.Mage_Core_Controller_Request_Http :: setPathInfo()和Mage_Core_Controller_Request_Http :: isDirectAccessFrontendName($ storeCode))而不是默认的indexAction

因此,解决方案是在本地配置或自己的扩展中设置此设置,如下所示

<?xml version="1.0"?>
<config>
  [...]
  <global>
    [...] 
    <request>
        [...] 
        <direct_front_name>
            <oauth/>
        </direct_front_name>
    </request>
  </global>
</config>

之后你终于可以获得令牌了。我现在正在检查进一步的流程。

答案 3 :(得分:2)

我也遇到了问题,以下请求返回了404 http状态:

http://yourmagentostore.com/oauth/initiate

解决方案非常简单:如果您在同一个域上使用多个商店和/或存储视图,请不要忘记添加映射到商店视图的URL路径。 E.g。

http://yourmagentostore.com/<my-store-view-path>/oauth/initiate

答案 4 :(得分:0)

有一个细微之处不要忘记http://所以你对商店的调用应该是

http://yourmagentostore.com/oauth/initiate

此外,还有更多的REST服务设置然后在您发布的链接上,它只是一个概述。在您实际获得休息响应之前,商店中有大量配置,当用户未被识别,未经授权或没有正确的ACL权限时,您将获得404或500响应。我想这会阻止黑客攻击,但这是一个麻烦射击的熊。我一直走在这条路上,虽然我使用的是自动化工具,但商店的安装和故障排除是一样的。

在我的博客上查看我使用Magento REST API进行冒险的最新版本 干杯!
Rich Borek
http://magento-simplified.blogspot.com