我正试图使用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":"找不到请求的资源。"}"
任何帮助都将不胜感激。
$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',
);