I have Written code in ZEND For Accessing Magento REST API for accessing data.
<?php
require_once 'Zend/Oauth/Consumer.php';
class AuthController extends Zend_Controller_Action
{
public function init()
{
$this->hostname = 'http://localhost/magento';
$consumerKey = 'mkkzxuu1bkveejyzjam5hl2pzaxxepwv';
$consumerSecret = 'bcmczrp3ofn9vmviqu3j8o1ioa7fisl6';
$callbackUrl = 'http://localhost/magento/oauth/token';
$this->config = array(
'callbackUrl' => $callbackUrl,
'requestTokenUrl' => $this->hostname . '/oauth/initiate',
'siteUrl' => $this->hostname . '/oauth',
'consumerKey' => $consumerKey,
'consumerSecret' => $consumerSecret,
'authorizeUrl' => $this->hostname . '/admin/oauth_authorize',
// 'authorizeUrl' => $this->hostname . '/oauth/authorize',
'accessTokenUrl' => $this->hostname . '/oauth/token'
);
}
public function indexAction()
{
$accesssession = new Zend_Session_Namespace('AccessToken');
if (isset($accesssession->accessToken)) {
$token = unserialize($accesssession->accessToken);
// $client = $token->getHttpClient($this->config);
$client = new Zend_Http_Client();
$adapter = new Zend_Http_Client_Adapter_Curl();
$client->setAdapter($adapter);
$adapter->setConfig(array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'curloptions' => array(CURLOPT_FOLLOWLOCATION => true),
));
$client->setUri($this->hostname . '/api/rest/products');
$client->setParameterGet('oauth_token', $token->getToken());
echo $token->getToken();
echo $token->getTokenSecret();
$client->setParameterGet('oauth_token_secret', $token->getTokenSecret());
$response = $client->request('GET');
$products = Zend_Json::decode($response->getBody());
} else {
$consumer = new Zend_Oauth_Consumer($this->config);
$token = $consumer->getRequestToken();
$requestsession = new Zend_Session_Namespace('RequestToken');
$requestsession->requestToken = serialize($token);
$consumer->redirect();
}
$this->view->products = $products;
}
public function callbackAction()
{
$requestsession = new Zend_Session_Namespace('RequestToken');
if (!empty($_GET) && isset($requestsession->requestToken)) {
$accesssession = new Zend_Session_Namespace('AccessToken');
$consumer = new Zend_Oauth_Consumer($this->config);
$token = $consumer->getAccessToken(
$_GET,
unserialize($requestsession->requestToken)
);
$accesssession->accessToken = serialize($token);
// Now that we have an Access Token, we can discard the Request Token
// unset($requestsession->requestToken);
// $this->_redirect();
$this->_forward('index', 'index', 'default');
} else {
// Mistaken request? Some malfeasant trying something?
// throw new Exception('Invalid callback request. Oops. Sorry.');
}
}
public function callbackrejectedAction()
{
// rejected
}
}
I have try this url many time
http://localhost/magento/oauth/token?oauth_token=medensg02pvrd1rdfjcay4bwkr76whkk&oauth_verifier=qxvbth1rfe4vv78n7r6mprtxvuq2yqhb
but not getting anything rather than File not found error.
You can see this url exist at magento official resource. http://www.magentocommerce.com/api/rest/authentication/oauth_authentication.html
First of all you need to install oauth extension for php, if it's already install than check your phpinfo that it's enabled. Than go to admin section and make the following changes to check the response of rest api.
admin->system->Webservice->rest attribute->guest->resources access and set ALL
admin->system->webservice->rest roles->guest->resources access and set ALL
save the settings and hit your url
http://hostname/magento/api/rest/products/
it will show you the response in xml format.later on modify the resource access as per your requirement.
once you make sure that magento is responding to the reset api than run your code and I feel it will work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With