我正在尝试使用 Zend_Oauth 作为自定义 Magento 模块的一部分连接到 discogs.com api。
Discogs API 详细信息在这里:
我在这里遵循了使用 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": "未找到请求的资源。"}"
任何帮助将非常感激。