2010年9月12日日曜日

AmazonPAAPI仕様変更 CustomerContentLookup廃止

amazonより、Product Advertising APIの仕様変更についてのお達しがありました。


利用率低下のため、以下に記載する Product Advertising API のオペレーション/レスポンス・グループは、2010年10月15日をもってサポートを終了いたします。

オペレーション



  • CustomerContentLookup

  • CustomerContentSearch

  • Help

  • ListLookup

  • ListSearch

  • TagLookup

  • TransactionLookup

  • VehiclePartLookup

  • VehiclePartSearch

  • VehicleSearch



レスポンスグループ



  • ListmaniaLists

  • MerchantItemAttributes

  • PromotionDetails

  • Subjects

  • Tags

  • TagsSummary

  • VariationMinimum




とのこと。
あまりメジャーでない機能の廃止なので、自分には関係ないかな、と思ってたんですが、念のため調べてみたら、CustomerContentLookupを使ってるところが一カ所だけありました。

自分で作ったウィッシュリストをAPI経由で参照してリストを作成する、という機能。ほとんど使っていなかったので影響はそれほど大きくありません。
ウィッシュリストが活用できるという点でけっこう便利だと思ってたので、なくなっちゃうのは少し寂しい気がします。


とは言っても廃止が決定してしまったのはしょうがないので、APIを使うのをやめ、代わりにASINを配列に保存するという簡単な改修を行って対応を完了しました。

2010年9月11日土曜日

Services_TwitterのOAuth対応

少し前にTwitterAPIがOAuth対応になり、これまでのベーシック認証が使えなくなりました。

そのうち対応させなきゃいけないなー、と思いつつ後回しにしていたのですが、こちらの記事を見て簡単にできることがわかったので対応してみました。

http://phpspot.org/blog/archives/2010/09/oauthphptwitter.html

まずは必要なPearライブラリを用意。その時点での最新バージョンをインストールします。


pear install channel://pear.php.net/Net_URL2-0.3.1
pear install channel://pear.php.net/HTTP_Request2-0.5.2
pear install HTTP_OAuth-0.1.18
pear upgrade channel://pear.php.net/Services_Twitter-0.6.2


※Services_Twitterはバージョン0.4以降はphp5.2以上でないとインストールできません。
自分の場合、php5.1の環境だったんですが、-fオプションで強制的にインストールしました。
そのまま使ってますが、今のところ特に問題はでていません。


続いてソースコードの修正。こんな感じになります。


require("Services/Twitter.php");
require("HTTP/OAuth/Consumer.php");

$tweet = "ツイートです\n";

$twitter = new Services_Twitter();
$oauth = new HTTP_OAuth_Consumer(
'*************', //Consumer Key
'*************', //Consumer Secret
'*************', //Access Token
'*************' //Access Token Secret
);
$twitter->setOAuth($oauth);
$msg = $twitter->statuses->update($tweet);
echo "Tweet OK \n\n";


これでAPI経由でtweetできるようになりました。

2010年9月8日水曜日

Webサーバー上のファイルのキャッシュの制御

ファイルのキャッシュコントロールをする要件があったので、復習の意味も兼ねて調査しつつ、手法をまとめてみました。


■htmlのmetaを付加する

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">


一番簡単でポピュラーなやり方だと思います。
使えるのはHTMLファイルのみという制約がありますが。


■ファイルのオシリに引数を付ける

<img src="hoge.gif?20100907">
<link type="text/css" rel="stylesheet" href="hoge.css?20100908">
<script type="text/javascript" src="js/hoge.js?20100909" language="JavaScript"></script>


みたいな感じ。
引数を付けることによってファイルの内容が異なることを明示し、ブラウザにキャッシュさせないというやり方。
これもかなりポピュラーかと思います。


■Apacheで制御する

Header set Cache-Control "no-cache"
Header set Pragma "no-cache"


こんな具合に、httpヘッダにno-cacheを出力するように設定することで、httpd.confや.htaccessでも制御可能です。


今回はこちらのサイトを参考にしました。
http://blog.look-ss.jp/article.php/2008092600255048 http://tech.bayashi.net/pdmemo/browsercache.html



あと大事なのは実際キャッシュされているかどうかの確認。
firefoxのアドオン「CacheViewer」が便利です。
https://addons.mozilla.org/ja/firefox/addon/2489/