2013-01-23 90 views
4

從Magento的維基在:Magento的REST API的Oauth URL返回404

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

當得到一個API憑證您在得到一個未經授權的請求令牌開始:

www.mystore.com /的OAuth /啓動

然而,我的代碼不工作,當我瀏覽到上述網址在瀏覽器中,我得到一個404

我將商店代碼添加到基本網址(例如www.mystore.com/en/)我不知道這是否會改變任何內容。

+0

你得到404或400錯誤的請求? –

+0

只需在瀏覽器中加載url,將不會將所需的參數傳遞給服務器對象,該對象在嘗試啓動令牌時將失敗並拋出一個導致400請求錯誤的異常。這個可能會被誤認爲是404 –

+0

這是404 我發了言: jQuery.post(「http://www.mydomain.com/oauth/initiate」); 進入我的Chrome控制檯,得到: POST http://www.mydomain.com/oauth/initiate 404(未找到) –

回答

4

我剛剛有同樣的問題。沒有很多類似的問題被發現並且沒有解決方案。這很奇怪,因爲這似乎是一個缺失的配置選項'global/request/direct_front_name',它未在Core/Oauth模塊中設置。沒有這個重要的設置,所有的教程如何工作!?

沒有 「OAuth的」 設置在那裏,每次調用/ OAuth的/ [控制器]導致 「noRouteAction」 被解決(見。Mage_Core_Controller_Request_Http :: setPathInfo()和Mage_Core_Controller_Request_Http :: isDirectAccessFrontendName($商店代碼)),而不是默認的indexAction。

所以,解決辦法如下

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

之後,您終於可以至少獲得令牌設置在本地配置或此設置一個自己的擴展。我正在檢查進一步的過程。

0

有一個細微之處,不要忘記了HTTP://所以你到店裏調用應該是

http://yourmagentostore.com/oauth/initiate

也有更多的休息服務的設置,那麼你發佈的鏈接上,它只是一個概述。在實際獲得休息響應之前,商店上有很多配置,當用戶未被識別,未經授權或沒有正確的ACL特權時,您將獲得404或500個響應。我認爲這會阻止黑客,但它是一個麻煩射擊的熊。我一直在這條路上,儘管我正在使用自動化工具,但存儲和故障排除的設置是相同的。

在我的博客上看一看我使用Magento REST API保持最新的冒險
乾杯!
豐富博雷克
http://magento-simplified.blogspot.com

2

我也有這個問題,那下面請求返回的404 HTTP狀態:

http://yourmagentostore.com/oauth/initiate 

的解決方案是非常簡單:如果您正在使用多個商店在外殼和/或將視圖存儲在同一個域中,不要忘記添加映射到商店視圖的url路徑。例如。

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

這爲我工作,以及(添加店 - 視圖 - 路徑PARAM'--request-令牌url'),但是在OAuth舞蹈下一步404'd,因此添加店 - 視圖 - 路徑此參數固定的:'--access令牌-URL http://yourmagentostore.com/ /OAuth的/ token' – wkw

+0

我硬是找遍了整個網絡的信息......這就是爲什麼我恨Magento的...! – Foddy

12

Magento的Wiki有一個錯字:

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

應該是:

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

+1 - 我的客戶oauth網址都正常工作,但是'/ admin/oAuth_authorize'是404'。將路徑更改爲全部小寫解決了它。 – STW

3

我這一個全天大部分時間的掙扎,所以這裏的的情況下,後期的貢獻它幫助別人:

多數民衆贊成由Magento的,管理/ oauth_authorize文件授權URL,假設你沒有爲您的管理員訪問使用自定義網址。 「admin」是訪問Magento儀表板的標準URL,但許多人爲了安全起見而改變它。如果您將管理員網址更改爲「admin」以外的內容,請改爲使用該網址。

督察,如果你在https://yoursite.com/foo訪問你的Magento的儀表板,那麼你的驗證網址是富/ oauth_authorize。