出错在Magento使用REST API [英] Error while using REST api in magento

查看:277
本文介绍了出错在Magento使用REST API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的系统中使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆