2015-02-11 80 views
0

我一直在努力通過REST API連接到我的Magento商店。 我已經嘗試連接從XAMPP運行一個獨立的程序:這裏是代碼:問題消費REST API Magento

<?php 
$callbackUrl = "http://healthandmed.com/oauth_admin.php"; 
$temporaryCredentialsRequestUrl = 
"http://healthandmed.com/oauth/initiate?oauth_callback=" . 
urlencode($callbackUrl); 
$adminAuthorizationUrl = 'http://healthandmed.com/admin123/oauth_authorize'; 
$accessTokenRequestUrl = 'http://healthandmed.com/oauth/token'; 
$apiUrl = 'http://healthandmed.com/api/rest'; 
$consumerKey = 'xxxxxxxxxxx'; 
$consumerSecret = 'xxxxxxxxxxxxx'; 

session_start(); 
if (!isset($_GET['oauth_token']) && isset($_SESSION['state']) && 
$_SESSION['state'] == 1) { 
    $_SESSION['state'] = 0; 
} 
try { 
    $authType = ($_SESSION['state'] == 2) ? OAUTH_AUTH_TYPE_AUTHORIZATION 
: OAUTH_AUTH_TYPE_URI; 
    $oauthClient = new OAuth($consumerKey, $consumerSecret, 
OAUTH_SIG_METHOD_HMACSHA1, $authType); 
    $oauthClient->enableDebug(); 
    if (!isset($_GET['oauth_token']) && !$_SESSION['state']) { 
     $requestToken = 
$oauthClient->getRequestToken($temporaryCredentialsRequestUrl); 
     $_SESSION['secret'] = $requestToken['oauth_token_secret']; 
     $_SESSION['state'] = 1; 
     header('Location: ' . $adminAuthorizationUrl . '?oauth_token=' . 
$requestToken['oauth_token']); 
     exit; 
    } else if ($_SESSION['state'] == 1) { 
     $oauthClient->setToken($_GET['oauth_token'], $_SESSION['secret']); 
     $accessToken = 
$oauthClient->getAccessToken($accessTokenRequestUrl); 
     $_SESSION['state'] = 2; 
     $_SESSION['token'] = $accessToken['oauth_token']; 
     $_SESSION['secret'] = $accessToken['oauth_token_secret']; 
     header('Location: ' . $callbackUrl); 
     exit; 
    } else { 
     $oauthClient->setToken($_SESSION['token'], $_SESSION['secret']); 
     $resourceUrl = "$apiUrl/products"; 
     $oauthClient->fetch($resourceUrl); 
     $productsList = json_decode($oauthClient->getLastResponse()); 
     echo count($productsList); 
    } 
} catch (OAuthException $e) { 
    print_r($e); 
} 
    ?> 

我也曾嘗試教程在Inchoo: /消費,Magento的休息,zend_oauth_consumer/

兩個解決方案將我帶到相同的地方: http://healthandmed.com/admin123/oauth_authorize
帶有以下錯誤消息: 「發生錯誤,您的授權請求無效。」

任何幫助將不勝感激。

+0

通常更好的方法是將代碼放在這裏而不是修復pastebin – Stedy 2015-02-11 22:19:48

+0

。謝謝。我在這裏呆了很久。這是我的第一篇文章。 – 2015-02-11 22:31:40

回答

0

我認爲這個問題是您的管理驗證網址即$ adminAuthorizationUrl的URL必須是http://healthandmed.com/admin/oauth_authorize,取代「爲admin123」與「管理」。當你這樣做時,你會被提示登錄到magento admin後臺,然後你會被要求授權。