🤖

Java(Spring boot)+ GradleでLINE BOTを作成する

2022/03/28に公開

はじめに

本記事では、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 SearchGitHub – google/guava: Google core libraries for Java を参考に、下記を build.gradle に追記します。
2021 年 12 月時点での最新バージョンを使用しているので、バージョンは適宜読み替えてください。

build.gradle
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 に下記を追記します。

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