2013-07-18 3 views
6

Ich habe einen geschriebenen Code in ZEND für den Zugriff auf die Magento-REST-API für den Datenzugriff."http: // {root_dir}/oauth/token" In Magento nicht gefundene Datei zum Registrieren der REST-API-Anwendung

<?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 
} 
} 

Ich versuche habe diese URL viel Zeit

http://localhost/magento/oauth/token?oauth_token=medensg02pvrd1rdfjcay4bwkr76whkk&oauth_verifier=qxvbth1rfe4vv78n7r6mprtxvuq2yqhb 

aber nicht immer etwas eher als Fehler Datei nicht gefunden.

Sie können diese URL bei Magento offiziellen Ressource existieren. http://www.magentocommerce.com/api/rest/authentication/oauth_authentication.html

After Calling this controller belows request generate for authorize after accepting this.

Throws belows error file not founds.

+0

Woher kommst du? Ich würde sagen, nehmen Sie seinen Rat und passen Sie Ihre Dateipfade an. – Jason

+0

Ich habe diesen Code in ZEND geschrieben –

Antwort

2

Zunächst einmal müssen Sie oauth Erweiterung für PHP installieren, wenn es bereits installieren ist als Ihre phpinfo prüfen, ob sie aktiviert ist. Gehen Sie dann in den Admin-Bereich und nehmen Sie die folgenden Änderungen vor, um die Antwort der Rest-API zu überprüfen.

admin->system->Webservice->rest attribute->guest->resources access and set ALL

admin->system->webservice->rest roles->guest->resources access and set ALL 

die Einstellungen speichern und drücken Sie Ihre URL

http://hostname/magento/api/rest/products/ 

es Ihnen die Antwort in xml zeigen format.later auf den Ressourcenzugriff nach Ihren Anforderungen ändern.

Sobald Sie sicherstellen, dass Magento reagiert auf die Reset-API, als führen Sie Ihren Code und ich denke, es wird funktionieren.

+0

Wirklich gut! –

Verwandte Themen