如何使用Zend_Oauth连接到Discogs Api



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

Discogs API详情如下:

访问

oauth

我在这里了解了使用Zend Oauth的详细信息:简介

建议的代码如下。。。

(我已经在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":"找不到请求的资源。"}"

任何帮助都将不胜感激。

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',
    );   

相关内容

  • 没有找到相关文章

最新更新