約2ヶ月ぶりのブログとなります。
以前の記事ではHerokuを使ってサンプルBOTを作るところまで実施しました。
今回はどうしようかと考えましたが、前回ちょびっとだけソースコードをいじったのを、
もうちょっと動作が変わる感じにして色々追加してみたりして遊んでみました!
※前回に引き続きかなり初心者な内容となるのでご了承ください。。
まず前回いじった以下ディレクトリ配下にあるソースコード
\line-bot-sdk-java\sample-spring-boot-kitchensink\src\main\java\com\example\bot\spring\KitchenSinkController.java
これに手を加えていきます。
すごい簡単なところから徐々にステップを踏む形で実施したので、それをそのまま書き連ねます。
目次
Step1.適当な処理をそのままコピペして、別の文字が送信されたときにも同じ処理を行うようにする
題目の通り、とりあえず超簡単なところから。
//お遊び追加 -start- Ctakahashi
case "あいうえお": {
ConfirmTemplate confirmTemplate = new ConfirmTemplate(
"Do it?",
new MessageAction("Yes", "\(^_^)/"),
new MessageAction("No", ";つД`)")
);
TemplateMessage templateMessage = new TemplateMessage("Confirm alt text", confirmTemplate);
this.reply(replyToken, templateMessage);
break;
}
//お遊び追加 -end- Ctakhashi
元々「confirm」と送ったら選択肢が出てくるのを、「あいうえお」と送信しても同じメッセージが返ってくるようにしてみました。
これをローカルのgitbranchにコミットして、herokuへプッシュします。
LINEBOTから「あいうえお」と送ってみると・・・
うまくいきました!まあ当然といえば当然なのですが。。笑
Step2.特定の文字を送信した時に、決まったメッセージが返ってくるようにする
「あいうえお」と送信した時に、「かきくけこ」と返ってくるようにしました。
という訳で、下記のようにコードを見よう見まねで追加してみましたー
//お遊び追加 -start- Ctakahashi
case "あいうえお": {
this.replyText(replyToken, "かきくけこ");
break;
}
//お遊び追加 -end- Ctakhashi
こんな感じで、「あいうえお」に対してはオウム返しではなく、「かきくけこ」と返してくるようになりました。
Step3.1と2を組み合わせて元気かどうかを聞いてくるBOTを作る
では1と2の内容を組み合わせ、ちょっと会話っぽくしてみました。
//お遊び追加2 -start- Ctakahasi
case "こんにちは": {
ConfirmTemplate confirmTemplate = new ConfirmTemplate(
"こんにちは~!元気?",
new MessageAction("元気!!", "元気!!"),
new MessageAction("微妙", "微妙")
);
TemplateMessage templateMessage = new TemplateMessage("Confirm alt text", confirmTemplate);
this.reply(replyToken, templateMessage);
break;
}
case "元気!!": {
this.replyText(replyToken, "それはよかったね");
break;
}
case "微妙": {
this.replyText(replyToken, "あら・・・大丈夫?");
break;
}
//お遊び追加2 -end- Ctakahashi
まず「こんにちは」とメッセージを送信すると、「こんにちは~!元気?」と元気!!か微妙の2択で聞いてきます。
「元気!!」で返すと「それはよかったね」と返信してくるし、「微妙」と返すと「あら・・・大丈夫?」と返してきます。
聞いてくるだけで何もしてくれません(笑)
こんな感じで出来ました!「それはよかったね」の返答がなんだか嫌味っぽいですが。
ホントにちょびっとだけですが、これくらい返してくれるとBOT感出てきますね。
これにもうちょっと手を加えて最終的に以下のような返しをしてくるちょっとうざいBOTとなりました。
先程の選択肢で「微妙」と返すと、寒いダジャレを返してきます。
「元気出た?」の問いに、「はい」「出た」「でた」「うん」を返すと「やった~」
「いいえ」「出てない」「でてない」だと「むむむ・・・」と返すようにしました。
コードは以下のようにしています。
初心者が試行錯誤してやった感じなので、きれいじゃないと思いますが。
//お遊び追加2 -start- Ctakahasi
case "こんにちは": {
ConfirmTemplate confirmTemplate = new ConfirmTemplate(
"こんにちは~!元気?",
new MessageAction("元気!!", "元気!!"),
new MessageAction("微妙", "微妙")
);
TemplateMessage templateMessage = new TemplateMessage("Confirm alt text", confirmTemplate);
this.reply(replyToken, templateMessage);
break;
}
case "元気!!": {
this.replyText(replyToken, "それはよかったね");
break;
}
case "微妙": {
this.reply(replyToken,
Arrays.asList(
new TextMessage("あらま・・・大丈夫??"),
new TextMessage("布団がふっとんだ!!!!"),
new TextMessage("元気出た??")
));
break;
}
case "出た":
case "でた":
case "はい":
case "うん": {
this.replyText(replyToken, "やった~");
break;
}
case "出てない":
case "でてない":
case "いいえ": {
this.replyText(replyToken, "むむむ・・・");
break;
}
//お遊び追加2 -end- Ctakahashi
本当はもっと手を加えてもうちょっと遊べるBOTにしたくて試行錯誤していたのですが、時間の関係上そこまで出来ず・・・
今回はここまでとします。


- 【React】フロントエンドのテストコードを書いてみよう【Vitest】 - 2024-04-30
- Simple AWS DeepRacer Reward Function Using Waypoints - 2023-12-19
- Restrict S3 Bucket Access from Specified Resource - 2023-12-16
- Expand Amazon EBS Volume on EC2 Instance without Downtime - 2023-09-28
- Monitor OpenSearch Status On EC2 with CloudWatch Alarm - 2023-07-02
【採用情報】一緒に働く仲間を募集しています
