【发布时间】:2014-03-14 07:48:48
【问题描述】:
我是 Magento 中 REST API 的新手。我已经使用 Magento 完成了所有身份验证设置。但是在请求以下网址时
http://store.mystore.net/api/rest/products
它将响应作为我商店的网页返回。这一切都适用于 localhost 和其他商店。
以下是我的代码:
$storeUrl='http://store.mystore.net';
$params = array(
'siteUrl' => $storeUrl,
'requestTokenUrl' => $storeUrl.'/oauth/initiate',
'accessTokenUrl' => $storeUrl.'/oauth/token',
'authorizeUrl' => $storeUrl.'/admin/oauth_authorize',
'consumerKey' => 'myconsumerkey',
'consumerSecret' => 'myconsumersecret',
'callbackUrl' => 'mycallbackurl',//Url of callback action below
);
// Initiate oAuth consumer with above parameters
$consumer = new Zend_Oauth_Consumer($params);
// Get request token
$requestToken = $consumer->getRequestToken();
// Get session
$_SESSION['requestToken']=serialize($requestToken);
//$session = Mage::getSingleton('core/session');
// Save serialized request token object in session for later use
//$session->setRequestToken(serialize($requestToken));
// Redirect to authorize URL
$consumer->redirect();
回调页面代码
$storeUrl='http://store.mystore.net';
//oAuth parameters
$params = array(
'siteUrl' => $storeUrl.'/oauth',
'requestTokenUrl' => $storeUrl.'/oauth/initiate',
'accessTokenUrl' => $storeUrl.'/oauth/token',
'consumerKey' => 'myconsumerkey',
'consumerSecret' => 'mysecretkey'
);
$requestToken = unserialize($_SESSION['requestToken']);
// Initiate oAuth consumer
$consumer = new Zend_Oauth_Consumer($params);
// Using oAuth parameters and request Token we got, get access token
$acessToken = $consumer->getAccessToken($_GET, $requestToken);
echo $acessToken;
// Get HTTP client from access token object
$restClient = $acessToken->getHttpClient($params);
// Set REST resource URL?
$restClient->setUri('http://store.mystore.net/api/rest/products');
// configure for request time out
$restClient->setConfig(array(
//'maxredirects' => 0,
'timeout' => 3000));
// In Magento it is neccesary to set json or xml headers in order to work
$restClient->setHeaders('Accept', 'application/json');
// Get method
$restClient->setMethod(Zend_Http_Client::GET);
//Make REST request
$response = $restClient->request();
// Here we can see that response body contains json list of products
Zend_Debug::dump($response);
我已经在我的管理面板中设置了用户角色和属性。帮我解决这个问题。
谢谢
【问题讨论】:
-
谢谢希瓦姆。顺便说一句,对于每个请求,我们必须发送带有消费者密钥和秘密的标头数据..如何使用 http 标头进行设置..?在您的代码中,您是自动发送还是手动发送?
-
你对 Magento 的 .htaccess 做了什么改动吗?
标签: php magento rest magento-1.7