Botを作った渋沢栄一の名著「論語と算盤」を読みました。確かに、現代日本では、語学や科学技術に対する教育が重要視されている一方で、道徳教育が軽視されている傾向にあるようにも思えます。そこで、さっそく岩波文庫の「論語」を購入して読み進めるも、途中で挫折してしまいまた。そもそも、論語は孔子の言葉を集めた短文集。毎日少しずつ読み進めながら、意味を噛み締め、日常生活の中で解釈を進めた方が自分の中に長く残るのかなと感じました。そこで、Goの勉強を兼ね、毎日Lineを通して論語を配信してくれるBotを開発しました。要所を超大まかにまとめておきます。細かい点はリポジトリを確認してください。APIデモ毎朝8:00に論語を配信するBotを公開しています。興味のある方は、以下からフレンド追加可能です。レポジトリも公開しています。READMEにしたがってビルドしてください。APIを使用しています。Herokuで登録したスケージューラーが、指定した時間にタスクを実行してPush配信するという構成を取っています。スクレイピングそもそも元情報が無くては、配信することも叶いません。Pythonでスクレイピングをして取得します。各々の原文、書き下し、訳文を取得。str(titles[i].getText()))User登録Push配信を行うためには、UserIDが必要です。そこで、フレンド登録・解除時に、UserIDをデータベースに登録/削除する処理を記述してあげます。APIからPostメソッドで/callbackにリクエストが飛んできます。これをevent.Typeを用いて処理を振り分けてあげます。ちなみにWebフレームワークGinを採用しています。false)}}})Push配信Getメソッドで/broadcastにリクエストが飛んできた際に、PushMessage()を用いて、配信を行います。IDを、二つ目以降に配信するメッセージオブジェクトをとります。Textメッセージは、linebot.NewTextMessage(“配信するテキストメッセージ”)で作成可能です。time.Now()}db.Create(&broadcast)})SchedulerGetメソッドで/boradcastにリクエストを送るのを自動化することで、配信をBot化できます。scheduler:standard上記のコマンドで、アドオンschedulerをHerokuに追加します。続いて、以下のような/broadcastにGETメソッドをリクエストするBashスクリプトを作成します。/app/scheduler.shと実行時間を登録すれば完成です。Botは結構簡単に作成できることがわかりました。フロントを書かなくていいので、新しい言語習得を効率よく行うことも可能です。次回はGoを使ってCLIアプリの作成をしたいと思います。