来自 Magento wiki:
获取 API 令牌时,您首先在以下位置获取未经授权的请求令牌:
www.mystore.com/oauth/initiate
但是,我的代码不起作用,当我在浏览器中浏览到上述 url 时,我得到一个 404。
我将商店代码附加到基本 url(例如 www.mystore.com/en/)我不知道这是否会改变任何东西。
来自 Magento wiki:
获取 API 令牌时,您首先在以下位置获取未经授权的请求令牌:
www.mystore.com/oauth/initiate
但是,我的代码不起作用,当我在浏览器中浏览到上述 url 时,我得到一个 404。
我将商店代码附加到基本 url(例如 www.mystore.com/en/)我不知道这是否会改变任何东西。
Magento Wiki 有一个错字:
$adminAuthorizationUrl = 'http://yourhost/admin/oAuth_authorize';
应该:
$adminAuthorizationUrl = 'http://yourhost/admin/oauth_authorize';
我一天中的大部分时间都在为此苦苦挣扎,所以这是一个迟来的贡献,以防它对任何人有所帮助:
Magento 记录的授权 URL admin/oauth_authorize 假定您没有使用自定义 URL 进行管理员访问。“admin”是访问 Magento 仪表板的标准 URL,但许多人出于安全考虑对其进行了更改。如果您已将管理员 URL 更改为“admin”以外的其他内容,请改用它。
IOW 如果您在https://yoursite.com/foo访问您的 Magento 仪表板,那么您的授权 URL 是 foo/oauth_authorize。
我也遇到了问题,以下请求返回了 404 http 状态:
http://yourmagentostore.com/oauth/initiate
解决方案非常简单:如果您在同一个域上使用多个商店和/或商店视图,请不要忘记添加映射到商店视图的 url 路径。例如
http://yourmagentostore.com/<my-store-view-path>/oauth/initiate
我只是有同样的问题。类似的问题不多,也没有解决办法。这很奇怪,因为这似乎是缺少的配置选项“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>
之后,您至少可以最终获得令牌。我现在正在检查进一步的过程。
有一个微妙之处,别忘了 http:// 所以你打电话给商店应该是
http://yourmagentostore.com/oauth/initiate
还有更多关于 REST 服务设置的内容,然后在您发布的链接上,它只是一个概述。在您真正获得休息响应之前,商店中有大量配置,当用户未被识别、未经授权或没有适当的 ACL 权限时,您将获得 404 或 500 响应。我想这可以阻止黑客,但要排除故障是一种负担。我一直在走这条路,虽然我使用的是自动化工具,但商店的设置和故障排除是一样的。
看看我的博客,我会用 Magento REST API 的冒险来保持最新状态
干杯!
Rich Borek
http://magento-simplified.blogspot.com