大昔に作ったAmazon検索ツールをLaravelで作り直した。昔は時間かけて調べたけど今なら数時間で終わる。(2016)
NO LICENSE
Product Advertising API だけ使ってたけど他のAPIも使って機能追加していく。
Amazonアカウントでログイン。現状はログインだけで他にはなにもない。
https://github.com/kawax/laravel-amazon-product-api
php artisan abs:list
ローカルで実行用。
価格情報などの履歴を保存。変動チェックのための準備。
Amazonアカウントでログインすると使える。
昔はタグとして個別ページを作ってた気がする。今はとりあえず簡易的な検索。
特定のブラウズIDのアイテムだけをリスト化できるようにするための準備。JSONでそのまま保存してついでに他のデータも。
ブラウズリストにID表示。
ASINでのアイテム単位とカテゴリー単位で。
ランダムブラウズと最近見られてるアイテム。
ユーザーが増えればウォッチリストで人気のアイテム表示などもできる。
ランキング(TopSellers)とニューリリースで切り替え。
jsonでまとめてではなく個別のcolumnに。
10日で数GBなサイズになってるので減らす。
カテゴリーでダウンロードしようとすると重すぎたのでDBを色々変更。 JSONでそのまま入れてるのを消したら2GBくらい大幅に減ってかなり軽くなった。
CSVまでできたのでしばらくは履歴データ増えるのを待つ。
普通に表示すると重すぎたので改善。
確実に1日1回は更新されるように実行。ただし増えすぎた場合は減らす。
Vue.jsで表示してるのでログイン中のみ。スマホサイズだと綺麗に表示できないので非表示。
個人レベルでRDSは使いたくなかったけどデータ量多すぎてサーバーの負荷が上がって来たので分散。 1年は無料枠なので20GBまでなら大丈夫なはず。
データ量が多いとCSVダウンロードに時間がかかりすぎるので色々と対策。最終的にキューでCSVファイルを作って通知→ダウンロードという手順。そのままダウンロードしようとすると実行時間切れ。
最近更新されたアイテムから一定数の範囲を調べて変動があれば通知。ホームとウォッチリストに入ってる場合はユーザーごとにも。 次の段階はウォッチリストを調べてユーザーに通知。Web Pushでの通知までは対応したい。メールは未定。
Postのcategory_idが2か3かで固定なのが微妙。
プッシュ通知対応。ただし対応してるのはChromeとFirefoxのみのはず。
mailgun を使うので使えるユーザー数は制限する。送信数が多くなりすぎるとここでも費用が必要になる。そこまでの段階になったらAWSのSESに変更するかもしれない。
Vue.jsなのでGoogle botからは見えないだろうと非表示にしてたけど表示してみる。最近は認識できるようになってるという話も聞く。
長期サポート版の5.5のままにするか迷ったけど5.6にアップデート。 メールでの通知を全員可能に。一時的にテスト。今後は送信数を見てから。
何度目だろうな。文字がエンコードされてるので対応しないとすべて壊れる。 検索APIの名称は何度も変わってるけど中身はあまり進化してない。けど余計な仕様変更はする。
これが手元に残ってたくらいだから最初にAPI使って何か作ったのは2003年頃。 https://github.com/kawax/AmazonWebServices2002
ウェブプッシュ通知もPWAの一部だけどホームに追加やオフラインでの表示にも少し対応。 対応してるかどうかはブラウザ次第。