Hatena::Groupasakura

浅倉卓司@blog風味? このページをアンテナに追加 RSSフィード

Error : RSSが取得できませんでした。

2009-05-14(Thu)

Amazon APIの認証をPHPなSOAPで対応する

| 12:18 |  Amazon APIの認証をPHPなSOAPで対応する - 浅倉卓司@blog風味? を含むブックマーク  Amazon APIの認証をPHPなSOAPで対応する - 浅倉卓司@blog風味? のブックマークコメント

 なんかSOAPを使ってたのがあったので、いちおう(RESTな記事しか見かけなかったので)。


 たぶんこんな感じ。

 SOAPのリクエスト部分は手抜き(元々使ってるはずなので、いらないでしょ?)。

<?php

$wsdl = 'http://webservices.amazon.com/AWSECommerceService/JP/AWSECommerceService.wsdl';
$soap_options = array();
$access_key = '';
$secure = '';  // 追加
$associate = '';

$action = 'ItemSearch';
$request = array(
);
$params = array(
  'AWSAccessKeyId' => $access_key,
  'AssociateTag' => $associate,
  'Request' => $request,
);

$soap = new SoapClient($wsdl, $soap_options);

// ヘッダ追加:ここから
// create signature
$timestamp = gmstrftime('%Y-%m-%dT%TZ', $_SERVER['REQUEST_TIME']);
$signature = base64_encode(hash_hmac('sha256', ($action . $timestamp), $secure, true));

// create soap header
$namespace = 'http://security.amazonaws.com/doc/2007-01-01/';
$header_data = array(
  'AWSAccessKeyId' => $access_key,
  'Timestamp' => $timestamp,
  'Signature' => $signature,
);
$headers = array();
foreach ($header_data as $name => $val) {
  $headers[] = new SoapHeader($namespace, $name, $val);
}
$soap->__setSoapHeaders($headers);
// ヘッダ追加:ここまで

$soap->$action($params);

 どうでもいいけど、SOAPを使った場合ってSSLが必要になってたのねぇ。知らなかった。


 PerlのSOAP::Liteを使った場合とかも需要あるのかな?

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20090514
2004 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 02 | 03 | 04 | 06 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 02 | 03 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2013 | 01 | 05 | 07 |
2014 | 01 | 02 |
2016 | 01 |
2017 | 01 | 05 |