11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

line-bot-sdk-javaを使ってSpring bootでLINE Botを作る

Last updated at Posted at 2021-07-19

概要

LINEが配布しているサンプルコードのline-bot-sdk-javaを使って、とりあえずLINE Botを動かしてみる手順。このサンプルコードは、LINE Botを作る上で必要なコードが一式揃っているので、これを元に拡張していくと効率がよいと思われる。
Javaのversionは11.02で実施。

関連

Spring boot + JPA + Flyway on herokuでLINE Botを作る
こちらはline-bot-sdk-javaに手を加えてDB接続など行ったもの。

環境

  • Java 11.02
  • Spring Boot 2.4.9 (line-bot-sdk-javaで使われているversion)

LINE Channelの作成

以下を参考にChannelを作成する。
ボット用のチャネルを作成

herokuでアプリを作成

herokuでアプリを作成する。
https://signup.heroku.com/

herokuに環境変数の登録

LINE Developersコンソールで、Messaging APIチャネルのチャネルシークレットとチャネルアクセストークンを確認し、herokuの管理画面のConfig Varsに以下を登録する。

CHANNEL_TOKEN:LINEのChannel access token
CHANNEL_SECRET:LINEのChannel secret

ソースコードの作成

サンプルコードを取得

サンプルコードには色々なものが入っているが、その中のsample-spring-boot-kitchensinkを使う。

$ git clone https://github.com/line/line-bot-sdk-java.git

Intellijでbuild.gradleを開く

TOP階層のbuild.gradleをIntellijで開く。

Procfileを編集

sample-spring-boot-kitchensinkを利用するため、Procfileを以下のように書き換える。

-web: java $JAVA_OPTS -jar sample-spring-boot-echo/build/libs/sample-spring-boot-echo-*.jar --server.port=$PORT
+web: java $JAVA_OPTS -jar sample-spring-boot-kitchensink/build/libs/sample-spring-boot-kitchensink-*.jar --server.port=$PORT

設定ファイルを作成、編集

templateをコピーする。

$ cd sample-spring-boot-kitchensink/src/main/resources/
$ cp application-template.yml application.yml

以下の文字列は削除して、以下の様に環境変数を使ってLINEのTOKENとSECRETを定義する。

This is a template for the configuration file.
Make a copy called application.yml and change the values below.

application.yml
line.bot:
  channel-token: ${CHANNEL_TOKEN}
  channel-secret: ${CHANNEL_SECRET}
  handler.path: /callback

Deploy

gitにherokuの情報を登録

$ heroku git:remote -a {HEROKU_APP_NAME}

Deploy

$ git add Procfile
$ git commit -m 'Initial commit'
$ git push heroku master

LINE Developer Console

LINEの管理画面で、herokuアプリのURLをwebhookとして登録する。

Webhook URL: https://{HEROKU_APP_NAME}.herokuapp.com/callback
Use webhook: onにする

Screen Shot 2021-07-18 at 19.55.20.png

Verifyをクリックしてテスト
Screen Shot 2021-07-18 at 19.54.43.png

OKとなればLINE BOTが正常に起動している。

動作確認

LINEアプリで該当Channelにメッセージを送ってみる。以下はすべてサンプルコードに実装されている機能。

「profile」と入力して、ユーザープロフィールを取得する

Screen Shot 2021-07-18 at 20.07.26.png

「buttons」と入力して、テンプレートメッセージを送る

Screen Shot 2021-07-18 at 20.07.49.png

「confirm」と入力して、テンプレートメッセージを送る

Screen Shot 2021-07-18 at 20.10.28.png

###「carousel」と入力して、テンプレートメッセージを送る
Screen Shot 2021-07-18 at 20.08.08.png

###「imagemap」と入力して、イメージマップメッセージを送る
Screen Shot 2021-07-18 at 20.08.21.png

LINE公式アカウントをグループチャットに招待してから「bye」と入力

グループチャットからLINE公式アカウントを退出させられる。

LINE公式アカウントに画像、音声、動画、位置情報などを送る

ボットはこれらのコンテンツを取得し、同じものを送り返してくる。

ソースコード

ファイル 処理内容
KitchenSinkApplication.java メインのクラス
KitchenSinkController.java controller。テキスト、スタンプ、画像投稿など様々な投稿方法ごとの返信処理の窓口
ExampleFlexMessageSupplier.java FlexMessage用
MessageWithQuickReplySupplier.java quickReply用
KitchenSinkWebMvcConfigurer.java

gradleのversionが低い

サンプルコードはgradleのversionが6.7.1なので必要であればアップグレードする。

$ ./gradlew -v

------------------------------------------------------------
Gradle 6.7.1
------------------------------------------------------------

Build time:   2020-11-16 17:09:24 UTC
Revision:     2972ff02f3210d2ceed2f1ea880f026acfbab5c0

Kotlin:       1.3.72
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM:          13.0.2 (Oracle Corporation 13.0.2+8)
OS:           Mac OS X 10.14.6 x86_64

関連

Spring boot + JPA + Flyway on herokuでLINE Botを作る

参考

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?