2012-09-24 232 views
8

我已經在Ubuntu 12.0.4服務器上安裝了Magento 1.7.0.2,一切正常。magento訪問被拒絕

測試REST API與管理角色(http://1.2.3.4/magento/api/rest/products)我得到這樣的結果:

<magento_api> 
    <messages> 
    <error> 
     <data_item> 
     <code>403</code> 
     <message>Access denied</message> 
     </data_item> 
    </error> 
    </messages> 
</magento_api> 

我已經創建了一個管理角色授予所有訪問所有的令牌認證程序都可以。

我試過用magento go服務,Bitnami VM和Windows安裝程序,但似乎Web服務不存在(我只能在Web服務下看到用戶/角色)。

您是否知道使用REST API工作的magento設置?

我該如何調試這種錯誤?我嘗試過使用不同的REST客戶端。

謝謝!

+0

嗨,你有沒有解決這個嗎?我有同樣的問題。我正在檢查並且Magento正在計算POST的錯誤簽名。 如果您檢查/app/code/core/mage/oauth/model/server.php第535行。$ this - > _ params被放入簽名函數包括客戶端發送的簽名什麼是 - 通過我瞭解的錯誤? –

+0

我有同樣的問題,但我試圖通過客戶登錄的示例訪問管理功能。所以它當然失敗了。 如果您想使用管理員權限訪問http://www.magentocommerce.com/api/rest/authentication/oauth_authentication.html – Shadowbob

回答

1

我曾經測試了Magento的REST API ..

我下面的博客幫我建立的REST API

1.first

2.second

3.third

我用RESTClient實現用於測試的Firefox插件,並確保在服務器上啓用Oauth。

3

您是否設置了角色和屬性的權限?如果不檢查先做magentocommerce.com/api/rest/permission_settings/

+0

,請訪問http://www.magentocommerce.com以獲得更好的鏈接/api/rest/permission_settings/permission_settings.html – Shadowbob

0

感謝chanz在那裏,我找到了解決我自己的問題。

它似乎不接受OAuth參數作爲查詢字符串 參數。我嘗試將它們作爲HTTP標題發送,並通過 。

來源:http://www.aschroder.com/2012/04/introduction-to-the-magento-rest-apis-with-oauth-in-version-1-7/comment-page-1/#comment-5090

當然,請確保您在System > Web Services > Web RolesSystem > Web Services > Web Attributes的設置是否正確。

使用Ruby oAuth library也很有幫助,因爲「它乾淨,簡單,效果很好」。見文章there

-2

你應該嘗試這些針對此問題在API: -

1)更改文件/app/code/core/Mage/Api2/Model/Auth.php價值,改變的值: DEFAULT_USER_TYPE = '客人' 到 DEFAULT_USER_TYPE = '管理員'。

2)更改文件/app/code/core/Mage/Api2/Model/Auth/Adapter.php中的值, 變化這條線從 返回(對象)陣列( '類型'=> Mage_Api2_Model_Auth: :DEFAULT_USER_TYPE,'id'=> null); 這樣: 返回(對象)陣列( '類型'=> Mage_Api2_Model_Auth :: DEFAULT_USER_TYPE, 'ID'=> '1'); (注意:只能將null更改爲'1')。

3)重新啓動服務器(Apache的運行以下命令:sudo的服務的Apache2重啓)。 我希望這些步驟能夠解決您的403訪問被拒絕的問題。