出错在Magento使用REST API [英] Error while using REST api in magento
问题描述
我在我的系统中使用XAMPP设置Magento的本地
I have set up magento locally in my system using XAMPP
我已经创建了根目录中的文件名为dm.php与内容
I have created a file in root directory named dm.php with the contents
<?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);
}
但是,这是给我下面的错误
But this is giving me the following error
Fatal error: Class 'OAuth' not found in D:\Webserver\xampp\htdocs\dm.php on line 19
任何人都可以阐明这光
谢谢
Can anybody shed some light on this Thanks
由于OAuth是不可能的XAMPP窗户安装我改变了我的dm.php文件的内容了这一点。
Since oauth is not possible to install in xampp windows i changed the contents of my dm.php file to this.
<?php
$ch = curl_init('http://localhost/mage2/api/rest/customers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$customers = curl_exec($ch);
echo $customers;
?>
现在我得到这样的错误
{"messages":{"error":[{"code":403,"message":"Access denied"}]}}
我究竟做错了什么?
What am i doing wrong?
推荐答案
首先
转到Magento管理面板系统 - &GT; Webservice-&GT;其余的功能角色&GT;&的guestgroup GT;资源访问 - &GT;设置所有
同样转到系统 - &GT; Webservice-&GT;其余的属性 - &GT;&的guestgroup GT;资源访问 - &GT;设置所有
然后点击此网址的http:// **** /沙勒/ Magento的/ API / REST /产品
在Web浏览器,并检查了什么错误,它表明...
Then Hit this url http://****/chanchal/magento/api/rest/products
in web Browser and check what error it shows....
据我必须显示在您的网站上的产品在 XML
格式。
According to me it must show product in your website in xml
format.
请让我知道..
编辑:
我刚才配置本地主机和得到这个输出是指屏幕截图。要确保有产品在你的Magento。
I configured a localhost just now and got this output refer the Screenshot. Be sure there is product in your magento.
同样遵循管理上面的步骤,然后客户创建管理面板Ouath消费者,安装RESTClient实现对于Mozilla Firefox和遵循的在这里
Similarly follow the above steps for admin,customer then create a Ouath consumer from admin panel , Install RESTClient For Mozilla Firefox And follow Here
对于这些措施是必要的setup..the链接可以帮助你..
These for steps are necessary for the setup..the link might help you..
验证端点
1 / OAuth的/抛砖引玉
- 这个端点用于检索请求令牌
1./oauth/initiate
- this endpoint is used for retrieving the Request Token.
2 / OAuth的/批准
- 这个端点用于用户授权(客户)
2./oauth/authorize
- this endpoint is used for user authorization (Customer).
3 /管理/ oauth_authorize
- 。这个端点用于用户授权(管理员)
3./admin/oauth_authorize
- this endpoint is used for user authorization (Admin).
4 /的OAuth /令牌
- 这个端点用于检索访问令牌
4./oauth/token
- this endpoint is used for retrieving the Access Token.
让我知道,如果你有任何问题。
Let me know if you have any issues.
最好的运气
这篇关于出错在Magento使用REST API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!