Javaを使ってLINE botを作ってみる その3
その3 SpringBootのプロジェクト作成
その1,その2で設定したAPIと連携するプロジェクトを作っていく。
Eclipseのインストールはここから。
筆者が使用しているのはEclipse2022
の Windows x64 Full Edition Java
mergedoc.osdn.jp
Eclipseを開き、
パッケージエクスプローラー上で右クリック
> 新規
> Spring スターター・プロジェクト(Spring Initializr)
プロジェクト設定
依存関係
- SpringBoot Dev Tools
- Lombok
- Spring Web
プロジェクトが出来上がったら文字コードをUTF-8する。
(文字化け防止のために)
ウィンドウ
> 設定
> 一般
> ワークスペース
> テキスト・ファイル・エンコードでUTF-8を選択
設定したら適用して閉じること。
次に、Herokuでデプロイする時にエラーにならないようにアノテーションを使用可能にする。
Heroku とはアプリの構築、提供、監視、スケールに役立つクラウドプラットフォームで、アイデアを出してから運用を開始するまでのプロセスを迅速に進めることが可能です。また、インフラストラクチャの管理の問題からも解放されます。
プロジェクトを右クリックして、
プロパティー
> Javaコンパイラー
>注釈処理
を押下し、
「プロジェクト固有の設定を可能にする」と「注釈処理を使用可能にする」にチェックを入れる。
適用して再ビルドを行う。
依存関係に「Line Bot Spring Boot」を追加する
「Maven Repository」で「line-bot-spring-boot」を検索すると最新のバージョンがあるのでそれを使用していく。
https://mvnrepository.com/artifact/com.linecorp.bot/line-bot-spring-boot
dependenciesブロックの一番下に以下を追記して保存。
6.0.0
の部分は使用するバージョンにすること。
implementation 'com.linecorp.bot:line-bot-spring-boot:6.0.0'
保存すると自動的にビルドされた。
LINEと連携可能にする為にテストコードを作成
「LINE Messaging API SDK」にアクセスし、Javaのソースを見る。
developers.line.biz
GitHubのリンクに飛ぶので、sampleの中にある「EchoApplication.java」を参考してみる。
先ほど作成したプロジェクトの中にデフォルトで作成されている「OmusubiBotApplication.java」を編集。
【編集前】
【編集後】
【編集後のソース】
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.linecorp.bot.model.event.Event; import com.linecorp.bot.model.event.MessageEvent; import com.linecorp.bot.model.event.message.TextMessageContent; import com.linecorp.bot.model.message.Message; import com.linecorp.bot.model.message.TextMessage; import com.linecorp.bot.spring.boot.annotation.EventMapping; import com.linecorp.bot.spring.boot.annotation.LineMessageHandler; @SpringBootApplication @LineMessageHandler public class OmusubiBotApplication { public static void main(String[] args) { SpringApplication.run(OmusubiBotApplication.class, args); } @EventMapping public Message handleTextMessageEvent(MessageEvent<TextMessageContent> event) { final String originalMessageText = event.getMessage().getText(); return new TextMessage(originalMessageText); } @EventMapping public void handleDefaultMessageEvent(Event event) { System.out.println("event: " + event); } }
設定ファイルにAPI接続情報を追記する
その2で作成したLINE DevelopersのMessaging API設定から以下の情報をコピーしておく。
- チャネルシークレット
- チャネルアクセストークン(長期)
application.propertiesを編集
【編集前】
【編集後】
【編集後のソース】
line.bot.channel-token=トークン line.bot.channel-secret=シークレット line.bot.handler.path=/
eclipse側の設定はここまで。
次は実際にアプリの連携をしてみる。