我正在尝试从Python访问Magento Rest api。但在最后阶段,我收到{'消息':{'错误':[{'消息':'拒绝访问','代码':403}]}}。
但是,当我试图从PHP脚本访问同样的东西时,它对我来说很好。所以,管理员角色和权限没有问题。
一个解决方案是here,但它建议将所有角色都提供给访客。在我的情况下不可能发生这种情况,因为所有用户都可以从浏览器中获取产品。
请问任何人可以建议不能从python访问相同的Rest API的原因,但可以正常使用PHP。
这是我的Python脚本代码
{AGENTO_HOST = 'http://127.0.0.1'
MAGENTO_API_BASE = '%s/api/rest/' % MAGENTO_HOST
magento = OAuth1Service(
name = 'magento',
consumer_key = 'vygdq11yzaectqwbpn1h4zwlamsrpomi',
consumer_secret = '5x5idvqc8rh4vc8lrxeg4hvple0u63dt',
request_token_url = '%s/oauth/initiate' % MAGENTO_HOST,
access_token_url = '%s/oauth/token' % MAGENTO_HOST,
# Customer authorization
#authorize_url = '%s/oauth/authorize' % MAGENTO_HOST,
# Admin authorize url depending on admin url
authorize_url = '%s/admin/oauth_authorize' % MAGENTO_HOST,
base_url = MAGENTO_API_BASE
)
# get request token
request_token, request_token_secret = magento.get_request_token(method='POST', params={'oauth_callback': 'oob'})
# authorize us
authorize_url = magento.get_authorize_url(request_token)
print 'Visit this URL in your browser: ' + authorize_url
code = raw_input('Paste Code from browser: ')
session = magento.get_auth_session(request_token,
request_token_secret,
method='POST',
data={'oauth_verifier': code})
headers = {'Accept': 'application/json'}
r = session.get('products', headers=headers)
articles = r.json()}
真的很感激任何帮助。