我想知道Magento主机是否会提供访问令牌,即使管理员/商店中没有添加任何产品或资源?我没有在我的商店中添加任何产品,我有一个请求令牌和oauth验证器,但我无法获得访问令牌?我得到http代码'0‘,没有特别的错误。我正在使用magento网站中给出的代码。
<?php
/***通过Magento REST API使用客户帐户检索产品列表的示例。使用OAuth授权*/
$callbackUrl = "http://127.0.0.1/callback.php";
$temporaryCredentialsRequestUrl = "http://127.0.0.1/magento/magento-1.9/oauth/initiate?oauth_callback=" . urlencode($callbackUrl);
$adminAuthorizationUrl = 'http://127.0.0.1/magento/magento-1.9/admin/oauth_authorize';
$accessTokenRequestUrl = 'http://127.0.0.1/magento/magento-1.9/oauth/token';
$apiUrl = 'http://127.0.0.1/magento/magento-1.9/magento/api/rest';
$consumerKey = '8f86e9bc5c3239180a0b208e02633085';
$consumerSecret = '025384b388b70daad209c31132e7c219';
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);
?>
}发布于 2017-02-11 22:06:07
对于正在寻找答案的人,Magento主机确实提供了访问令牌和密钥,无论是否有目录中的任何库存/产品。当Magento主机使用oauth标记和oauth验证器代码重定向到回调url时,我在重定向页面中编写了一个php脚本,以便将查询字符串的内容下载到一个文件中。因此,我在访问令牌和访问密钥的请求中使用了这些内容(令牌和验证器代码)。
此外,我对请求使用了Java客户端。在Java语言中有一个很棒的库,叫做oauth.signpost。在同一个平台上有很多例子。
此外,在被重定向到回调url之后,客户端必须使用异步请求来获取访问令牌和密码。异步客户端可以从任何库中使用,也可以通过使用线程、休眠机制来使用。
https://stackoverflow.com/questions/41723373
复制相似问题