読者です 読者をやめる 読者になる 読者になる

MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

Amazonの商品の割引を自動で通知してくれるWebサービスを作った

Web

 

目次

はじめに

無料で作る自作Webアプリ第六弾です。

(過去のアプリは末尾のリンクを参照下さい)

 

今回は初めて、サーバサイドに力を入れて、

データベースを使うことと、Webサーバだけでなく

サーバサイドのバッチ処理も利用することを

技術的目標に掲げました。

 

そこで、以前から自分自身が欲しいなぁと思っていた、

Amazon商品(現状はKindle本のみ)の割引を

自動でメール通知してくれるWebサービスを作りました。

 

最近、AmazonのKindle本が通常の本とは異なり、

期間限定の値引きをしていることが多いです。

 

しかし、値引きする時は、大量の本が値引きされるので、

自分が欲しい本が値引きされているかを

いちいちチェックするのは面倒です。

また、急に一日だけ値引きされることも多かったので、

気付かないことも防ぎたいなと思っていました。

 

そこで、これらの問題を解決するために作ったのが、

今回のWebサービスです。

  

Amazon Discount Notification

今回のWebアプリのリンクはこちらです。

amazon-discount-notification.herokuapp.com

 

このWebアプリは、

事前にAmazonの欲しいものリスト(Wish list)のURLと、

メールアドレスを登録すると、

定期的に欲しいものリスト内の

Amazonの商品データをチェックし、

先ほどのアドレス先に

自動で割引を通知を実施してくれます。

Webアプリの登録方法

このWebアプリでは、

最初に欲しいものリストのURLと、

Emailアドレスを登録する必要があります。

f:id:meison_amsl:20160102220129p:plain

 

まず初めに下記のリンクからAmazonの

欲しいものリストのページに移動します。

ほしい物リスト

 

続いて、下記のスクリーンショットのように、

欲しいものリストの文字の横にある

非公開というボタンを押します。

f:id:meison_amsl:20160102221822p:plain

 

そして、下記の画面が出てくるので、

公開/非公開のタブから、

リンクをシェアを選びます。

f:id:meison_amsl:20160102222015p:plain

 

最後に

欲しいものリストのページの右側にある

下記の"共有する"ボタンを押すと表示される

固定リンクのURLをコピーし、

そのURLを先ほど登録フォームに入力します。

f:id:meison_amsl:20160102222644p:plain

 

Emailアドレスは

割引通知メールを受け取りたいアドレスを入力し、

Registrationボタンを押します。

 

あとは自動的に、

毎日夜11時頃に下記の割引通知メールが送られてきます。

  

割引通知メール 

割引通知のメールは、

AmazonDiscountCheker@sparkpostbox.com

というメールアドレスから、

毎日日本時間の11時に

下記のようなフォーマットで送信されます。

 

通知メールサンプル

f:id:meison_amsl:20160102215223p:plain

システム構成

システム構成は下記の通りです。

詳しい説明はそれぞれの説明記事を参照下さい。

 

インフラ: heroku

現状、無料枠のみで運用しています。

自分以外のユーザが利用しているようなら、

有料プランにするつもりです。

myenigma.hatenablog.com

 

また、メール送信はアドオンのSparkPostを

バッチ処理はアドオンのHeroku Schedular

を使っています。

 

Webサーバ: Bottle

ブックマークレットからのURL自動入力は、

bottleのダイナミックルーティングを使いました。

URLの中にURLを入れたかったので、

スラッシュを@に一度変換して、

それをbottle内で元に戻す処理をしています。

(こうゆう時はどうすればいいのか今後調べてみる予定です)

myenigma.hatenablog.com

 

データベース: redis

herokuのアドオンであるHeroku redisの無料版を使っています。

RDBよりも個人的にはredisの方が使いやすいです。

myenigma.hatenablog.com

 

デザインテンプレート: bootstrap

なんだか最近bootstrapレベルが上がっていないので、

書籍でも買って勉強しようかなと思っています。

myenigma.hatenablog.com

 

最後に

かなりシンプルですが、

元々自分が作りたいようなものが最近作れるようになってきたので、

かなり楽しくなって来ました。

まだ、いくつか作りたいものがあるため、

少しづつ勉強と開発を進めていこうと思います。

また、このツールもどんどん改良していく予定です。

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com