Inv...">

Magento REST 500 API Error

I am trying to get product information through the Magento REST API; but leads to the error "[message: protected] => Invalid auth / bad request (received 500, expected HTTP / 1.1 20X or redirect) ..................... .. "I do not know why this is happening; Can someone please help me with this? My code is:

$callbackUrl = "http://myhostcom/current_script.php"; $temporaryCredentialsRequestUrl = "http://myhostcom/oauth/initiate?oauth_callback=" . urlencode($callbackUrl); $adminAuthorizationUrl = 'http://myhostcom/oauth/authorize'; $accessTokenRequestUrl = 'http://myhostcom/oauth/token'; $apiUrl = 'http://myhostcom/api/rest'; $consumerKey = 'xxxxxx'; $consumerSecret = 'xxxxxxxxxxx'; echo '<pre/>'; 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(); $oauthClient->disableSSLChecks(); 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/465"; $oauthClient->fetch($resourceUrl); $productsList = json_decode($oauthClient->getLastResponse()); print_r($productsList); } } catch (OAuthException $e) { print_r($e); } 

Thanks.

+4
source share
3 answers

try below code of his work

 $callbackUrl = "http://myhostcom/current_script.php"; $temporaryCredentialsRequestUrl = "http://myhostcom/oauth/initiate?oauth_callback=" . urlencode($callbackUrl); $adminAuthorizationUrl = 'http://myhostcom/oauth/authorize'; $accessTokenRequestUrl = 'http://myhostcom/oauth/token'; $apiUrl = 'http://myhostcom/api/rest'; $consumerKey = 'xxxxxx'; $consumerSecret = 'xxxxxxxxxxx'; echo '<pre/>'; 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(); $oauthClient->disableSSLChecks(); 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/465"; $oauthClient->fetch($resourceUrl, array(), 'GET', array("Content-Type" => "application/json","Accept" => "*/*")); //$oauthClient->fetch($resourceUrl); $productsList = json_decode($oauthClient->getLastResponse()); print_r($productsList); } } catch (OAuthException $e) { print_r($e); } 

hope this helps you

+5
source
 $callbackUrl = "http://myhostcom/current_script.php"; $temporaryCredentialsRequestUrl = "http://myhostcom/oauth/initiate?oauth_callback=" . urlencode($callbackUrl); $adminAuthorizationUrl = 'http://myhostcom/oauth/authorize'; $accessTokenRequestUrl = 'http://myhostcom/oauth/token'; $apiUrl = 'http://myhostcom/api/rest'; $consumerKey = 'xxxxxx'; $consumerSecret = 'xxxxxxxxxxx'; 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: ' . $customerAuthorizationUrl . '?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, array(), 'GET', array('Content-Type' => 'application/json', 'Accept' => '*/*')); $productsList = json_decode($oauthClient->getLastResponse()); print_r($productsList); echo "<br/>".$_SESSION['secret']."<br/>"; echo "<br/>".$_SESSION['token']."<br/>"; } } catch (OAuthException $e) { print_r($e->getMessage()); echo "<br/>"; print_r($e->lastResponse); } 
0
source

In particular, that he added the accept header to the fetch line:

 $oauthClient->fetch($resourceUrl, array(), 'GET', array('Content-Type' => 'application/json', 'Accept' => 'application/json')); 
-one
source

Source: https://habr.com/ru/post/1499337/


All Articles