我正在尝试使用Zend_Oauth连接到discogs.com api,作为自定义Magento模块的一部分。
Discogs API详情如下:
我已经在这里使用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“:”找不到请求的资源。“}”
非常感谢任何帮助。
答案 0 :(得分:0)
discogs的那些人指出授权网址应该是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',
);