Script(以下GAS)を使えば、Googleが提供する諸々のサービス、Gmail、カレンダー、スプレッドシート、ドライバーをJavaScriptのコードベースで操作することが可能になります。このGASとLineBot開発の相性がとても良いです!今回私は、スプレッドシートに登録しておいた英単語を、LineBotで定期的にリマインドしてくれる、個人ツールを開発しました。その開発過程を紹介しながら、GASとLineBotの相性の良さをご紹介できればと思います。Script(GAS)とはGoogleによって開発された、スクリプト言語です。Cloud)内で実行されます。GASで提供されているライブラリ使うことで、Googleが提供する数多くのサービスをコードベースで操作することが可能になるため、業務の自動化・効率化が期待できます。BOTを開発するメリット私が感じたメリットは以下の三点です。**前回は、こちらにもあるように、勉強を兼ねてGo+herokuでデータベースを使ってLineBotを大々的に開発しました。オーバスペックなのに加えて、工数も結構かかってしまいました。Botに落とし込むことができます。ここからは、実際に開発の過程をお見せしたいと思います。1、2時間もあれば完成するはずです。ために英単語帳を進めています。効率よく暗記をするために、学術的な知見としてよく挙げられるものに、エンビグハウスの忘却曲線があります。誰もが一度は目にしたことがあるのではないでしょうか?(wikipediaより引用)横軸が経過日数。縦軸が節約率を示しています。エンビグハウスの実験によると、記銘したのちに1日の間に急激な節約率の低下が起きますが、その後の低下はなだらかになるそうです。グラフを見ていただければわかるように、繰り返し学習をするうちに、低下具合がなだらかになる様子が見て取れます。要は、繰り返し学習をするたびに定着度が上がっていくということですね。筆者は怠惰な性格のため、この反復するというサイクルを怠ってしまいがちです。Botに復習用のミニテストを配信してもらい、Line上でタスクを解くことで復習をするという制約を自分に課したいと思います。このタスクを、忘却曲線を参考にして、単語を記銘後の1、3、6、10、15日後にLine配信するように設定しておきます。学習のおおまかな流れは次のようになります。本来なら自分で予定を立てるなどして、i)復習日を決め、ii)当日に復習をしなくてはならないことを思い出し、iii)実行をするという、3ステップが必要になります。このii)とiii)の工程は、筆者的には、かなりエネルギーを使う部分です。この箇所をLineでBot化しておけば、普段は、上記の12の工程に、100%のエネルギーを費やすことができるようになります。APIから新規チャンネルの作成を行います。Trialを選択します。スプレッドシートの構造スプレッドシードには以下の構造で記述していきます。(translation)日付を元に配信日を決定するので、dateは必須です。残りは、好みに応じて好きに変えても良いかもしれませんね。GASのコーディングそれでは、スプレッドシートから現在の1,3,6,10,15日前に登録した単語群を抽出して配信するスクリプトを記述していきます。エディタからGAS用のエディタを開いて、以下のコードを記述します。ウェブアプリケーションとして導入を選択します。スクリプトの定期実行4でコーディングしたスクリプトを、毎日定刻に自動で実行するように設定します。herokuだとアドオンを追加したり、EC2だとcronの設定をしたり、いろいろと面倒ですがGASだと簡単に設定可能です。現在のプロジェクトのトリガーを選択します。ボタンを押すと以下の画面が出てくるはずです。実行する関数とイベントのソースを選択します。選択し、1日おきに実行するため、日付ベースのタイマーを選んでいます。この辺りは、お好みで調整してください。登録が完了したら、あとは、決まった時間にスクリプトが走るのを待つだけです。エラー通知設定をONにしていると、スクリプトにエラーが起こった際にメールで知らせてくれるので便利です。まとめBotを使って、効率よく単語を習得する方法について提案させていただきました。この方法がうまくいくかは、自分で使いながら試行錯誤していきたいと思います。Bot開発の手軽さを実感していただければ嬉しいです。LineBotだけではなくSlackやスマートスピーカなどのインタフェースにも応用できそうですよね。