Javaを使ってLINE botを作ってみる その3

その3 SpringBootのプロジェクト作成

その1,その2で設定したAPIと連携するプロジェクトを作っていく。

Eclipseのインストールはここから。
筆者が使用しているのはEclipse2022Windows x64 Full Edition Java mergedoc.osdn.jp

Eclipseを開き、
パッケージエクスプローラー上で右クリック > 新規 > Spring スターター・プロジェクト(Spring Initializr)

プロジェクト設定
  • 名前:omusubi_bot
  • タイプ:Gradle - Groovy
  • Javaバージョン:17

依存関係
  • SpringBoot Dev Tools
  • Lombok
  • Spring Web

プロジェクトが出来上がったら文字コードUTF-8する。
(文字化け防止のために)
ウィンドウ > 設定 > 一般 > ワークスペース > テキスト・ファイル・エンコードでUTF-8を選択
設定したら適用して閉じること。

次に、Herokuでデプロイする時にエラーにならないようにアノテーションを使用可能にする。

Heroku とは | 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側の設定はここまで。
次は実際にアプリの連携をしてみる。