メモするとまとめてメールで送ってくれるLINEBot (Flask + Heroku + Evernote)

![Hayアイコン](https://obs.line-scdn.net/0hwpmGZXFAKF9QPgKXS0NXCGx7JjInEC4XKAhma3c2fzp_WjsNO1FuaiI9fzt6XWoJbw9gOnxqIj95/preview)

*2022.10.31 Heroku有料化に伴いサービス終了しました*

## TL;DR
- LINEで、シンプルなメモアプリを作成しました
- Botへのメモをストックして、自動でまとめて次の日にメールしてくれる
- Evernoteと連携して、日々の記録をノートブックに集めることもできる

## モチベーション
日々のメモはEvernoteに書いて保存しているタイプです。
本当にささいなメモを書くときに、わざわざ新しくノートを作成するのが面倒だな、と開発しました。

Twitterなどに呟くのもちがうので、LINEに一人部屋を作ってメモったりもしてたんですが、
「どうせなら書いた内容をちゃんと保存したい」と思ったのでメモ内容をメールで送付するBotを作りました。


## LINE Hay
<img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208648/e0a3e08b-754b-ceb4-1504-3bab350b8b8e.png"> <img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208648/7dd6cc42-8b51-c989-1985-ea04a10ebd25.png"> <img width="350" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208648/d5f8d165-1c76-153a-b361-c47216842906.png">

[How to use](https://www.evernote.com/shard/s264/client/snv?noteGuid=ecddccd4-5a26-4827-81b1-d5cdc16ceb19&noteKey=6632841011e3c28c4bc38fadb23a4820&sn=https%3A%2F%2Fwww.evernote.com%2Fshard%2Fs264%2Fsh%2Fecddccd4-5a26-4827-81b1-d5cdc16ceb19%2F6632841011e3c28c4bc38fadb23a4820&title=How%2Bto%2BHay)



### What’s Hay?
    
Hayは非常にシンプルで、便利な記録ツールです。
LINEに「忘れたく無いこと」を呟くと、次の日の朝にまとまってメールで届きます。

:::note info
ふとした瞬間に呟いてみてください。
昨日の自分が知ったことを、Hayはあなたに教えてくれます。
:::

### Quick Start

1. Hayを友達登録する
2. スタンプを送信し、設定画面を開く
3. ユーザー情報の更新で、あなたのメールアドレスを登録する
4. 記録したいことを呟く

これだけで、毎朝５時(JST)にメールが届きます。
配信停止も、設定画面からすぐに変更できます。

:::note info
忘れる前にHayしてみてください
きっと、これまで忘れていたことが如何に多かったか
気がつくでしょう
:::

### Evernote
    
HayはEvernoteと連携することで、より便利になります。
（ただ、この方法はEvernoteプレミアムのみ利用できます）

・あなたのEvernote転送用メールアドレスをHayに登録する
・EvernoteにHayという名前のノートブックを作成する

これで、自動的にHayがEvernoteに綺麗に格納されます。
勿論、Evernoteなので後から編集することもできます。



### Command
    
Hayには６つのコマンドがあります。
そのうち４つはカテゴリの切り替えを行います。
これらはすべて画面下の"コマンド"から利用できます。

#### カテゴリ

・Memo
忘れそうなこと、今日初めて知ったこと、雑多な思いつき...を呟いてください。
デフォルトでは、カテゴリはMemoになっています。

・Idea
小さな気づきが、あなたの未来を大きく変えるかもしれません。
思いついたアイデアはこのカテゴリに呟きましょう。

・Diary
１日に５行、日記を書くだけで、脳の機能が向上するという研究もあります。
寝る前に、今日何をしたかを記録してみてください。
大丈夫、Hayは朝の５時まで待ってくれます。

・Todo
やるべきことを記録しましょう。
ただ、HayはTodoの記録は得意ではありません。
他のタスク管理ツールを利用することをお薦めします。


#### ファンクション
 
・Check
その日に呟いたことを確認できます。
Hayは１日経つと全てを忘れてしまうので、
届いたHayを大切にしてくださいね。
 
・Config.
設定画面です。スタンプを送っても表示されます。
メールアドレスの変更、配信の停止や再開ができます。

:::note info
Have a Nice Hay !
:::

## システム構成
![システム構成](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208648/572f1439-a9df-779d-48c8-d32171e778fc.png)

- [LINE Messaging API](https://developers.line.biz/ja/services/messaging-api/)
    - Developer Trialならpushメッセージも遅れます。友だち上限は50人です。
- [Heroku](https://jp.heroku.com/home)
    - Freeプランは30分でスリープしてしまいますが、常時動かさければFreeで十分利用できます。
- [Heroku Postgres](https://jp.heroku.com/pricing#databases)
    - Herokuのアドオンとして利用できます。Hobbyプランなら10k行まで無料。
- [SendGrid](https://app.sendgrid.com/)
    - こちらもHerokuのアドオンとして利用できます。
- [Evernote](https://evernote.com/intl/jp)
    - 言わずと知れたメモアプリ。メールでのノート保存はEvernoteプレミアム以上のサービスです。

## おわりに
ざっくりとした内容になってしまいましたが、質問などあればコメントをお願いします。



---
たいへん参考にさせて頂きました！

- Flask/Heroku関連
    - [FlaskとPostgreSQLでウェブアプリを作ってHerokuで無料で運用する](https://qiita.com/croquette0212/items/9b4dc5377e7d6f292671)
    - [FlaskでLINE botを実装し，herokuにdeployするまで](https://qiita.com/suigin/items/0deb9451f45e351acf92)
    - [PostgreSQLを用いたFlaskアプリのHerokuデプロイ(Flask-SQLAlchemy)](https://qiita.com/takechanman1228/items/917e2eb47fa21f866cb4)
    - [[PostgreSQL] よく使うコマンドまとめ](https://dev.classmethod.jp/server-side/db/postgresql-organize-command/)
    - [Flask + SQLAlchemyプロジェクトを始める手順](https://qiita.com/shirakiya/items/0114d51e9c189658002e)
    - [heroku 初級編 - GitHub から deploy してみよう -](https://qiita.com/sho7650/items/ebd87c5dc2c4c7abb8f0)
    - [Heroku + Python(Flask)でオウム返しLINE bot](https://qiita.com/ryoma30/items/d07bd96f8ce3ecefa172)
    - [herokuでsendgridから定期的にメールを送ってみた、pythonで](https://qiita.com/noexpect/items/896c583945c2eec16093)
    - [LINE Messaging API を使って毎日のゴミ出しの「ゴミの種類」を通知してくれるボットを作った【Python】](https://blog.seiyamaeda.com/11403)

- HTMLにメモを埋め込む
    - [Jinja2の使い方がわかるとFlaskを用いた開発がよりスマートになる](https://qiita.com/bookun/items/7ae5de21307d101b4759)
    - [ゾンビでもわかるPythonプログラミング](http://python.zombie-hunting-club.com/entry/2017/11/03/223503)

- テンプレートに利用したサービス
    - [CakeMail](https://www.cakemail.com/templates/details/flow)
    - [Designevo](https://www.designevo.com/)
    - [名言を返してくれるLINE Botを作ってみた](https://www.uosansatox.biz/entry/2017/10/25/154455)

- そのほか
    - [LINEを送るだけで簡単にEvernoteにメモを残せるLINE BOTを作ってみた。](https://qiita.com/ponkotsu0605/items/9afc35280f77cdb30d8b)
    - [Messaging APIリファレンス](https://developers.line.biz/ja/reference/messaging-api/)
    - [SDK of the LINE Messaging API for Python.](https://github.com/line/line-bot-sdk-python)