カスタム Magento モジュールの一部として Zend_Oauth を使用して、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
これが表示されると:
"{"メッセージ": "要求されたリソースが見つかりませんでした。"}"
注意: 関連するアカウント キーの詳細を使用して Twitter API Oauth に対して同じコードを実行すると、動作し、必要に応じてアクセス確認のために Twitter にリダイレクトされます。
requestScheme、requestMethod など、さまざまな $config 設定を試しましたがうまくいきませんでした。
必要なヘッダーと関係があるのではないかと考えたので、 $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();
同じ応答が得られます。
"{"メッセージ": "要求されたリソースが見つかりませんでした。"}"
どんな助けでも大歓迎です。