【问题标题】:How to connect to Discogs Api using Zend_Oauth?如何使用 Zend_Oauth 连接到 Discogs Api?
【发布时间】:2012-02-15 15:27:27
【问题描述】:

我正在尝试使用 Zend_Oauth 作为自定义 Magento 模块的一部分连接到 discogs.com api。

Discogs API 详情在这里:

accessing

oauth

我在这里关注了使用 Zend Oauth 的详细信息: introduction

建议代码如下...

(我已经在 Discogs 上设置了一个测试帐户,因此这里的密钥和秘密是正确的、有效的并且可以进行测试。)

$config = array(
    'callbackUrl' => 'http://www.example-discogs-app.co.uk',
    'siteUrl' => 'http://api.discogs.com/oauth',
    'consumerKey' => 'qvJGTkWsbVMGZGYCHCrQ',
    'consumerSecret' => 'iBMnIrhFzoHjqaiVbkhhrmipzcaBwBCc'
    );
$consumer = new Zend_Oauth_Consumer($config);

// fetch a request token
$token = $consumer->getRequestToken();

// persist the token to storage
$_SESSION['DISCOGS_REQUEST_TOKEN'] = serialize($token);

// redirect the user
$consumer->redirect();

我得到一个请求令牌并被重定向到:api.discogs.com/oauth/authorize?oauth_token=xyzrequesttoken

显示如下:

"{"message": "未找到请求的资源。"}"

注意:当我使用相关帐户密钥详细信息对 Twitter API Oauth 运行相同的代码时,它会正常工作并重定向到 Twitter 以进行访问确认。

我尝试了各种 $config 设置,但都没有成功,例如requestScheme, requestMethod,.

我认为这可能与所需的标头有关,所以我也尝试替换 $consumer->redirect();与以下... ($token 是从上面的 $token 响应中提取的)

$client = new Zend_Http_Client();
$client->setHeaders('Content-Type: application/json');
$client->setHeaders('User-Agent: +Xyz');
$client->setUri('http://api.discogs.com/oauth/authorize?oauth_token='.$token);
$client->setMethod(Zend_Http_Client::POST);
$response = $client->request();

我得到了同样的回应:

"{"message": "未找到请求的资源。"}"

任何帮助将不胜感激。

【问题讨论】:

    标签: php zend-framework discogs-api


    【解决方案1】:

    discogs 的好心人指出,授权 url 应该是 www 而不是 api,所以正确的配置看起来像这样:

        $config = array(
            'callbackUrl' => http://www.example-discogs-app.co.uk,
            'consumerKey' => 'tJOGhRhfsCQKnGCaOZin',
            'consumerSecret' => 'dxyrhywgvMgVqrZsmncCrQyAXnRHwZVq',
            'requestTokenUrl' => 'http://api.discogs.com/oauth/request_token',
            'authorizeUrl' => 'http://www.discogs.com/oauth/authorize',
            'accessTokenUrl' => 'http://api.discogs.com/oauth/access_token',
        );   
    

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 2020-06-24
      • 2020-06-19
      相关资源
      最近更新 更多