我使用XAMPP在我的系统中本地设置了magento
我在根目录中创建了一个名为dm.php的文件,其中包含内容
<?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);
}
Run Code Online (Sandbox Code Playgroud)
但这给了我以下错误
Fatal error: Class 'OAuth' not found in D:\Webserver\xampp\htdocs\dm.php on line 19
Run Code Online (Sandbox Code Playgroud)
任何人都可以对此表示感谢
由于oauth无法在xampp窗口中安装,因此我将dm.php文件的内容更改为此.
<?php
$ch = curl_init('http://localhost/mage2/api/rest/customers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$customers = curl_exec($ch);
echo $customers;
?>
Run Code Online (Sandbox Code Playgroud)
现在我收到这样的错误
{"messages":{"error":[{"code":403,"message":"Access denied"}]}}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
cha*_*anz 12
首先转到magento管理面板 System->Webservice->RESt Roles->Guest->Resources Access ->SET ALL
同样去吧 System->Webservice->RESt Attribute->Guest->Resources Access ->SET ALL
然后http://****/chanchal/magento/api/rest/products在Web浏览器中点击此URL 并检查它显示的错误....
据我所知,它必须以您的网站xml格式显示产品.
请告诉我..
编辑:我刚才配置了一个localhost并得到了这个输出参考截图.确保您的magento中有产品.
同样按照上面的步骤进行管理,客户然后从管理面板创建一个Ouath消费者,为Mozilla Firefox安装RESTClient并按照这里
这些步骤是设置所必需的..链接可能会帮助你..
身份验证端点
1. /oauth/initiate- 此端点用于检索请求令牌.
2. /oauth/authorize- 此端点用于用户授权(客户).
3. /admin/oauth_authorize- 此端点用于用户授权(Admin).
4. /oauth/token- 此端点用于检索访问令牌.
如果您有任何问题,请告诉我.
祝你好运
| 归档时间: |
|
| 查看次数: |
13524 次 |
| 最近记录: |