首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento rest api、访问令牌

Magento rest api、访问令牌
EN

Stack Overflow用户
提问于 2017-01-18 23:35:13
回答 1查看 832关注 0票数 0

我想知道Magento主机是否会提供访问令牌,即使管理员/商店中没有添加任何产品或资源?我没有在我的商店中添加任何产品,我有一个请求令牌和oauth验证器,但我无法获得访问令牌?我得到http代码'0‘,没有特别的错误。我正在使用magento网站中给出的代码。

代码语言:javascript
复制
<?php
/**

*通过Magento REST API使用客户帐户检索产品列表的示例。使用OAuth授权*/

代码语言:javascript
复制
$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);
    ?>







}
EN

回答 1

Stack Overflow用户

发布于 2017-02-11 22:06:07

对于正在寻找答案的人,Magento主机确实提供了访问令牌和密钥,无论是否有目录中的任何库存/产品。当Magento主机使用oauth标记和oauth验证器代码重定向到回调url时,我在重定向页面中编写了一个php脚本,以便将查询字符串的内容下载到一个文件中。因此,我在访问令牌和访问密钥的请求中使用了这些内容(令牌和验证器代码)。

此外,我对请求使用了Java客户端。在Java语言中有一个很棒的库,叫做oauth.signpost。在同一个平台上有很多例子。

此外,在被重定向到回调url之后,客户端必须使用异步请求来获取访问令牌和密码。异步客户端可以从任何库中使用,也可以通过使用线程、休眠机制来使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41723373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档