Java(Spring boot)+ GradleでLINE BOTを作成する
はじめに
本記事では、Java で LINE BOT を作成しようとLINE Messaging API SDK for Javaを参考にしたが不要なファイルがたくさんあるのでなんとか上手くできないかなと筆者が悩んだ末、
1 からプロジェクト作成してサンプルとして用意されている sample-spring-boot-kitchensink のソースを用いて BOT を作成し、ローカルで動作確認まで行った手順を紹介します。
手順
チャネルを作成する
まずは LINE BOT のチャネルを作成します。
Messaging API を始めよう | LINE Developersに従って進めていきます。
LINE Messaging API SDK for Java からコードを clone する
次に任意のディレクトリで LINE が提供している LINE Messaging API SDK for Java を clone します。
git clone https://github.com/line/line-bot-sdk-java.git
プロジェクトを作成
Spring Initializer でプロジェクト作成します。(画面は IntelliJ)
Type は Gradle を選択します。
次に Lombok と Spring Web を選択して次に進みます。
これでプロジェクト作成されます。
line-bot-spring-boot を依存関係に追加
次に LINE BOT 開発に必要な依存関係を追加します。
Maven Central Repository Search と GitHub – google/guava: Google core libraries for Java を参考に、下記を build.gradle に追記します。
2021 年 12 月時点での最新バージョンを使用しているので、バージョンは適宜読み替えてください。
implementation 'com.linecorp.bot:line-bot-spring-boot:4.7.0'
implementation 'com.google.guava:guava:31.0.1-jre'
資材を配置
サンプルプロジェクトである sample-spring-boot-kitchensink を動作させるために下記作業を行います。
-
sample-spring-boot-kitchensink/src/main/java/com/example/bot/spring
配下にある Java ファイルをsrc/main/java/com/example/javalinebotsample
配下にコピーする。 -
JavaLineBotSampleApplication.java
を削除する。 -
sample-spring-boot-kitchensink/src/main/resources/static
配下のコンテンツをsrc/main/resources/static
配下にコピーする。
application.properties の追記
application.properties に下記を追記します。
line.bot.channel-token=チャネルアクセストークンの値を入力
line.bot.channel-secret=チャネルシークレットの値を入力
line.bot.handler.path=/callback
ngrok を用いた動作確認準備
動作確認には ngrok(エングロック)というツールを使用します。
このツールを使用すると自身のローカルホストを外部公開することができるようになります。これによって、IDE でローカル実行して自身の端末で LINE BOT の動作確認が容易にできるようになります。
ngrok のインストール
初めて使用する方は Homebrew を使ってインストールします。
brew install ngrok
ngrok の起動
インストールが完了したら下記コマンドで起動します。
ngrok http 8080
実行に成功すると下記画像のような情報が表示されます。
チャネル設定の編集
- 上記の例だと
https://f16d-2400-4050-aec2-8a00-8cab-5267-137c-e3aa.ngrok.io/callback
を Webhook 設定の Webhook URL に追記
※ 実行毎に値は変わるので都度更新してください。 - Webhook の利用を有効にする
- 応答メッセージを無効にする
- あいさつメッセージを無効にする
LINE BOT の設定画面は下記のようになります。
動作確認
下記の機能を試すことができます。
- 機能例 (Heroku でサンプルボットを作成する | LINE Developersより引用)
- 「profile」と入力して、ユーザープロフィールを取得する。
- 「buttons」、「confirm」、または「carousel」と入力して、テンプレートメッセージを送る。
- 「imagemap」と入力して、イメージマップメッセージ を送る。
- LINE 公式アカウントをグループチャットに招待する。「bye」と入力すると、グループチャットから LINE 公式アカウントを退出させられます。
- LINE 公式アカウントに画像、音声、動画、位置情報などを送る。ボットはこれらのコンテンツを取得し、同じものを送り返してきます。
まとめ
いかがだったでしょうか?これで LINE BOT の基本的な機能が一通り利用できるようになりました。ここから自分の試してみたい機能の実装を進めると、開発がスムーズにできるのではないかと思います。
手取り早く BOT を動かしてみたい人用に私が作成したサンプルプロジェクトを共有します。
下記コマンドで取得できます。
git clone https://github.com/otkshol/java-line-bot-sample.git
以上になります。
さいごまで読んでくださりありがとうございました。
ローカルでの動作確認に続いて、heroku にデプロイして動作確認する手順と自分が詰まったエラーの対処方法を下記記事にまとめたので興味がある方はこちらも参考にしてみてください。
Discussion