【问题标题】:Magento rest api call is not working for my storeMagento rest api 调用不适用于我的商店
【发布时间】: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


【解决方案1】:

由于您的token被拒绝,请正确检查auth。

您可以在 Mozila Rest Client 中进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多