ページへ戻る
印刷
Product Advertising API って一体・・・
をテンプレートにして作成 ::
XOOPS マニア
UsersWiki
:nao-pon/blog/2009-05-09 をテンプレートにして作成
開始行:
#navi
RIGHT:&rsslink(../);
#boxdate
* Product Advertising API って一体・・・
RIGHT:&tag(Amazon,プログラミング);
Amazon の Associates Web Service が Product Advertising A...
名称変更だけならいいのだけど、今後のリクエストには認証が...
これが、どのようにするのかよく分からない。
Amazon.com のアカウントは持っていたので、とりあえず秘密キ...
この先は、
- http://docs.amazonwebservices.com/AWSECommerceService/l...
を見れば分かるらしいのだが、なんせ英語が分かんない。 :cry:
今日は、ここまで。
----
と思ったけど気になったので、ちょっと頑張ってみました。
とりあえず、PHP の hash_hmac() が使える環境 (PHP 5 >= 5.1...
肝は base64 でエンコードするところでしょうか。
#code(php,nonumber){{
$hash = base64_encode(hash_hmac('sha256' , $data, $key, T...
}}
あとは、hash_hmac() が使えない環境向けに代用関数を探すだ...
誰か知っていたら教えてください。 :shy:
** PHP での REST のまとめ
検索で、訪れてくれる人が多いようなので、簡単にまとめてお...
+ 何はともあれ、amazon.com のアカウントを取って、AWS から...
+ GETクエリの構築
-- 配列 $params にクエリキーをキーとして値が入っていると...
-- クエリに Timestamp を加える
#code(php,nonumber){{
$params['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z');
}}
-- クエリのキーを元に昇順ソートし、値を URL エンコードし...
#code(php,nonumber){{
ksort($params);
$querys = array();
foreach($params as $key=>$val) {
$querys[] = $key . '=' . rawurlencode($val);
}
$query = join ('&', $querys);
}}
-- そのクエリと秘密キー($key)を元に Signature を作成
#code(php){{
$data = 'GET' . "\n" . 'webservices.amazon.co.jp' . "\n" ...
if (function_exists('hash_hmac') && function_exists('hash...
$signature = base64_encode(hash_hmac('sha256' , $data, $...
} else if (function_exists('mhash') && defined('MHASH_SHA...
$signature = base64_encode(mhash(MHASH_SHA256 , $data, $...
} else {
$signature = '';
}
}}
-- Signature が作成できれば、クエリに追加
#code(php,nonumber){{
if ($signature) $query .= '&' . $signature;
}}
+ あとは、できあがった GETクエリで今まで通りにリクエスト
ざっと、こんな感じです。 :ok:
hash_hmac() も mhash() も使えない環境への対応は、代用関数...
RIGHT:&font(90%){&page_comments;};
#navi
終了行:
#navi
RIGHT:&rsslink(../);
#boxdate
* Product Advertising API って一体・・・
RIGHT:&tag(Amazon,プログラミング);
Amazon の Associates Web Service が Product Advertising A...
名称変更だけならいいのだけど、今後のリクエストには認証が...
これが、どのようにするのかよく分からない。
Amazon.com のアカウントは持っていたので、とりあえず秘密キ...
この先は、
- http://docs.amazonwebservices.com/AWSECommerceService/l...
を見れば分かるらしいのだが、なんせ英語が分かんない。 :cry:
今日は、ここまで。
----
と思ったけど気になったので、ちょっと頑張ってみました。
とりあえず、PHP の hash_hmac() が使える環境 (PHP 5 >= 5.1...
肝は base64 でエンコードするところでしょうか。
#code(php,nonumber){{
$hash = base64_encode(hash_hmac('sha256' , $data, $key, T...
}}
あとは、hash_hmac() が使えない環境向けに代用関数を探すだ...
誰か知っていたら教えてください。 :shy:
** PHP での REST のまとめ
検索で、訪れてくれる人が多いようなので、簡単にまとめてお...
+ 何はともあれ、amazon.com のアカウントを取って、AWS から...
+ GETクエリの構築
-- 配列 $params にクエリキーをキーとして値が入っていると...
-- クエリに Timestamp を加える
#code(php,nonumber){{
$params['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z');
}}
-- クエリのキーを元に昇順ソートし、値を URL エンコードし...
#code(php,nonumber){{
ksort($params);
$querys = array();
foreach($params as $key=>$val) {
$querys[] = $key . '=' . rawurlencode($val);
}
$query = join ('&', $querys);
}}
-- そのクエリと秘密キー($key)を元に Signature を作成
#code(php){{
$data = 'GET' . "\n" . 'webservices.amazon.co.jp' . "\n" ...
if (function_exists('hash_hmac') && function_exists('hash...
$signature = base64_encode(hash_hmac('sha256' , $data, $...
} else if (function_exists('mhash') && defined('MHASH_SHA...
$signature = base64_encode(mhash(MHASH_SHA256 , $data, $...
} else {
$signature = '';
}
}}
-- Signature が作成できれば、クエリに追加
#code(php,nonumber){{
if ($signature) $query .= '&' . $signature;
}}
+ あとは、できあがった GETクエリで今まで通りにリクエスト
ざっと、こんな感じです。 :ok:
hash_hmac() も mhash() も使えない環境への対応は、代用関数...
RIGHT:&font(90%){&page_comments;};
#navi
ページ名: