Fehler während der Verwendung der REST-api in magento
Ich habe magento lokal auf meinem system mit XAMPP
Habe ich eine Datei in das root-Verzeichnis mit dem Namen dm.php mit dem Inhalt
<?php
/**
* Example of products list retrieve using Customer account via Magento REST API. OAuth authorization is used
*/
$callbackUrl = "http://localhost/dm.php";
$temporaryCredentialsRequestUrl = "http://localhost/mage2/oauth/initiate?oauth_callback=" . urlencode($callbackUrl);
$adminAuthorizationUrl = 'http://localhost/mage2/oauth/authorize';
$accessTokenRequestUrl = 'http://localhost/mage2/oauth/token';
$apiUrl = 'http://localhost/mage2/api/rest';
$consumerKey = 'enhksf7u33p3snubewb6zcq0z9c63bvv';
$consumerSecret = 'p7e835cdcxofokeep749jgzz4l1e306p';
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());
print_r($productsList);
}
} catch (OAuthException $e) {
print_r($e);
}
Aber das gibt mir die folgende Fehlermeldung
Fatal error: Class 'OAuth' not found in D:\Webserver\xampp\htdocs\dm.php on line 19
Kann jemand etwas Licht in diese Schuppen
Dank
Seit oauth ist nicht möglich, die Installation in xampp windows ich habe die Inhalte meiner dm.php Datei auf dieses.
<?php
$ch = curl_init('http://localhost/mage2/api/rest/customers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$customers = curl_exec($ch);
echo $customers;
?>
Nun erhalte ich eine Fehlermeldung wie diese
{"messages":{"error":[{"code":403,"message":"Access denied"}]}}
Was mache ich falsch?
- Ist Ouath aktiviert in der Xampp-server? Ihr passiert durch, dass
- ich überprüfte nun. seine nicht aktiviert.Aber ich glaube, es gibt keine Möglichkeit, die wir installieren können, oauth xampp
- magentocommerce.com/api/rest/authentication/... dieser link könnte dir helfen
- Consumer key, Consumer secret, Access token, Access token secret, die erforderlich sind
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst
Gehen Sie zu magento admin-panel
System->Webservice->RESt Roles->Guest->Resources Access ->SET ALL
Ähnlich Gehen
System->Webservice->RESt Attribute->Guest->Resources Access ->SET ALL
Dann klicken Sie auf diese url
http://****/chanchal/magento/api/rest/products
im web-Browser und überprüfen Sie, welche Fehler man zeigt....Nach mir, Sie müssen zeigen, Ihre Produkte in einer website in
xml
format.Bitte lassen Sie mich wissen..
BEARBEITEN:
Ich konfigurierte eine localhost-gerade jetzt, und hat diese Ausgabe finden Sie den Screenshot. Vergewissern Sie sich, dass Sie Ihre Produkte in magento.
Ähnlich wie die oben genannten Schritte für admin,Kunde erstellen Sie dann eine Ouath Verbraucher von admin-panel Installieren RESTClient Für Mozilla Firefox Und Folgen Sie Hier
Diese Schritte sind notwendig für das setup..der link könnte dir helfen..
Authentifizierung Der Endpunkte
1.
/oauth/initiate
- dieser Endpunkt wird verwendet zum Abfragen der Request-Token.2.
/oauth/authorize
- dieser Endpunkt wird für die Berechtigung des Anwenders (Kunde).3.
/admin/oauth_authorize
- dieser Endpunkt verwendet wird, für Benutzer die Berechtigung (Admin).4.
/oauth/token
- dieser Endpunkt wird für das abrufen des Zugriffstokens.Lassen Sie mich wissen, wenn Sie irgendwelche Probleme.
Viel Glück
Etwas von code-änderungen leicht lösen dieser Fehler
403 forbidden
.Welche magento-engine tut, ist, dass es verwendet die Standard -
guest
Benutzer für den Zugriff auf die REST api-Methoden. Der guest-Benutzer nicht viel Kräfte, also sollte es besser sein, dies zu ändern-Funktionalität von magento. Es gibt 2 Möglichkeiten, dies zu tun:1) Quick-and-dirty-fix:
in der Datei /app/code/core/Mage/Api2/Model/Auth.php, ändern Sie den Wert von:
DEFAULT_USER_TYPE = 'guest'
DEFAULT_USER_TYPE = 'admin'
.In der Datei
/app/code/core/Mage/Api2/Model/Auth/Adapter.php,
ändern Sie diese Zeile aus
return (object) array('type' => Mage_Api2_Model_Auth::DEFAULT_USER_TYPE, 'id' => null);
dies:
return (object) array('type' => Mage_Api2_Model_Auth::DEFAULT_USER_TYPE, 'id' => '1');
Diese Art der Authentifizierung system nicht gebrochen werden.
2) Ordnungsgemäße und langfristig zu beheben:
Überschreiben Sie die beiden Funktionen mit der magento übergeordneten Mechanismus, um eine bessere Lösung im Einklang zu magento-standards. Auf diese Weise die core-Dateien werden intakt sein.
Wir verwenden diesen link zur Installation von oauth für php. Gutes und einfaches hinzufügen von extension für php.
installieren Sie die oauth-php
Ich hoffe, es hilft allen und würde gelöst 'OAuth' nicht gefunden Fehler.
Ich hatte das gleiche Problem und war zu kämpfen, für eine Woche, sondern nur versuchen insatlling neue version von xammp oder wamp mit unterstützt ouath.Die bessere Lösung war ,installierte ich Ammps 1,9 und in php5.4 ich beschloss die Erweiterung von oauth aber noch sicherstellen, dass Sie wählen Sie die richtige php-Erweiterung oauth unterstützt wird (php5.4)
Für die Installation von Oauth : http://www.magentocommerce.com/api/rest/authentication/oauth_authentication.html
Installation der PHP-Erweiterung für Oauth :
1. Download php_oauth.dll Datei und fügen Sie es unter C:\xampp\php\ext\
2. hinzufügen [PHP_OAUTH] extension=php_oauth.dll in php.ini