- 追加された行はこの色です。
- 削除された行はこの色です。
#pgid
* 目次 [#led1f14f]
#contents
* あらまし [#s7f7a7d2]
** AST(Alexa Site Thumbnail) [#ca12453d]
- Alexaのサイトサムネイル提供のポリシーがかわった
- Alexa Site Thumbnail~
http://www.amazon.com/gp/browse.html?node=236156011
> Pricing
>
> * Pay only for what you use. There is no minimum fee, and no start-up cost.
> * $0.0002 / thumbnail returned (i.e. $0.20 per 1,000 thumbnails)
> * No charge if the thumbnail does not exist
- これに合わせてAPIも変わったので、その導入方法について記述します
* 導入 [#l7f36041]
** ASTのサンプル [#s3c3be59]
- サンプル コード~
http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=80
- PHPのサンプルはPHP 5必須とあるが、''DOMのパーサーがあれば普通にPHP4でも問題ないはず''
-- このサンプル通り作るなら、CURLがインストールされている必要がある
--- これも普通にリクエスト投げて、レスポンスもらうだけなら代替方法なんかいくらでもある
- COLOR(red){追加情報:}''PHP4用''のデータファイルもアップしてくれたらしいです on 2006/09/12~
http://developer.amazonwebservices.com/connect/thread.jspa?messageID=42066ꑒ
> ThumbnailUtility for PHP4, beta
** 概念 [#b95cadd1]
- コードを書く前に、まずはASTのAPI等概念を見ていく
*** リクエストの方法 [#f9d21ff2]
- GETでリクエストを投げて、レスポンスをもらう方法と、SORPで取得する方法がある~
参照:http://docs.amazonwebservices.com/AlexaSiteThumbnail/2006-05-15/PgQueryRequestsArticle.html
- COLOR(blue):とりあえず、GETでレスポンスをもらうほうにしよう
*** QUERY Request Formatの形式 [#o4fa14a0]
- ''http://ast.amazonaws.com/Xino''の後に続いてパラメータをセットする
-- ''AWSAccessKeyId=''自分のID
-- ''&Timestamp=''日時(http://www.w3.org/TR/xmlschema-2/#dateTimeに準拠)
-- ''&Signature=''タイムスタンプとAWSAccessKeyIdから作る認証値(詳しくはコレ参照→http://docs.amazonwebservices.com/AlexaSiteThumbnail/2006-05-15/AuthenticationArticle.html)
-- ''&Action=Thumbnail''固定
-- ''&Url=''取得したいサイトのURL
- 参照:http://docs.amazonwebservices.com/AlexaSiteThumbnail/2006-05-15/QueryRequestFormatArticle.html
*** レスポンスの形式 [#v7949665]
- XMLが返ってくる
-- 形式はコレ参照→http://docs.amazonwebservices.com/AlexaSiteThumbnail/2006-05-15/QueryResponseFormatArticle.html
** 設計 [#g56fa1b2]
*** フロー [#oa65b7bf]
+ リクエストを投げるためのURLを作る
+ Alexaにリクエストを投げ、レスポンスを取得する
+ レスポンスを解析して結果を出力する
** 実装 [#e8fdb6a9]
- ↓これ使ってください
-- http://developer.amazonwebservices.com/connect/thread.jspa?messageID=42066ꑒ
> ThumbnailUtility for PHP4, beta
** 利用する際に必要な手続き [#r11b174c]
- COLOR(red):''AWSに登録して、AWSAccessKeyIdとシークレットIDを手に入れただけでは動作しない''
- ↓このページへ、AWSアカウントログインをしたままアクセスしてみる~
http://www.amazon.com/b/ref=sc_fe_c_1_3435361_2/103-1999065-3965468?ie=UTF8&node=236156011&no=3435361&me=A36L942TSJ2AJA
- すると、↓こういうボタンがある。
#ref(awt-img.jpg)
- 迷わずクリックする
- クレジットカード番号を登録する
- 請求先住所を登録する
- 完了ボタン押す
- 以上でAlexa Site Thumbnailの登録ができた
- この状態で、↓このようにアクセスしてみるとサムネイルが表示される~
http://ast.amazonaws.com/xino/?&Action=Thumbnail&AWSAccessKeyId={AWSAccessKeyId}&Timestamp={日時}&Signature={認証値}&Size=Small&Url=yahoo.com
* キャッシュしてみよう [#x339483f]
** 設計2 [#aa7b2124]
- どうせならキャッシュできるようにしましょうか
-- COLOR(red): ''Q: キャッシュしてもいいの?'' A.構いません~
参考:http://www.amazon.com/b/104-6248227-6679939?ie=UTF8&node=3440661&no=15879911&me=A36L942TSJ2AJA#alexa
*** フロー [#k014fb82]
+ サムネイルを出したいURLをキーにDB検索
+ 見つかった場合は、ファイル名取得して画像出力して終わり。見つからなければ次へ。
+ リクエストを投げるためのURLを作る
+ Alexaにリクエストを投げ、レスポンスを取得する
+ レスポンスを解析して結果を出力する
+ レスポンスから画像自体をダウンロード
+ URLをキーにファイル名をDBへ登録
*** SQL [#a7865d1d]
- MySQLを使うとして↓こんなもんで。
CREATE TABLE ast_cache (
url VARCHAR(255) NOT NULL,
file VARCHAR(255) NOT NULL,
PRIMARY KEY (url)
);
** 実装2 [#sfc63f95]
- まだ作ってないよ。。。