LINE Messaging API を試してみる
準備
Spring Boot セットアップ
https://start.spring.io/ でテンプレートを作成して次の依存関係を追加します。
<dependency>
<groupId>com.linecorp.bot</groupId>
<artifactId>line-bot-spring-boot</artifactId>
<version>2.7.0</version>
</dependency>
Heroku セットアップ
今回は linebotbeta というアプリケーション名にしました。
heroku create -n -a linebotbeta
- 参考: HerokuでSpringBootアプリを動かしてみる > ローカルでビルドした jar をデプロイする 及びそのリンク先
LINE platform セットアップ
LINEデベロッパーコンソール で今回のbotが利用するプロバイダ、チャネルを作成します。
「チャネル基本設定」タブで次の設定を行います。
| 設定項目 | 設定値 |
|---|---|
| アクセストークン(ロングターム) | (発行しておく) |
| Webhook送信 | 利用する |
| Webhook URL | https://linebotbeta.herokuapp.com/callback |
Webhook URL の設定値について、 linebotbata というのは先に作成したHeroku上のapp名、 /callback は line-bot-spring-bootのデフォルトのコールバックエンドポイントです。 これは line.bot.handler.path プロパティで変更可能です。
実装
コントローラ(ハンドラ)実装
今回はとりあえず README にあるオウム返しするハンドラを試しに実装しておきます。
@LineMessageHandler
public class MyController {
@EventMapping
public TextMessage handleTextMessageEvent(final MessageEvent<TextMessageContent> event) throws Exception {
System.out.println("event: " + event);
return new TextMessage(event.getMessage().getText());
}
}
プロパティ設定
src/main/resources/application.properties に、デベロッパーコンソールの今回使用するチャネルに表示されている次の項目をセットします。
| 設定項目 | 設定値 |
|---|---|
| line.bot.channelToken | アクセストークン(ロングターム) の値 |
| line.bot.channelSecret | Channel Secret の値 |
ビルド&デプロイ
mvn package
heroku deploy:jar target/line-bot-sample-0.0.1-SNAPSHOT.jar -a linebotbeta
実行してみる
デベロッパーコンソールのチャネルページにQRコードが表示されていると思いますので、スマートフォンのLINEアプリで読み取ってチャネルにアクセスします。
トーク画面で何かメッセージを入力すると、botがオウム返ししてきます。
botのログは heroku logs コマンドで確認できます。
heroku logs -a linebotbeta