久しぶりにLINE botを作りたいなと思って、どう作ろうかな?と考えていました。2年前にLINE botを作ったときはLINE Messaging API SDK for Java+Spring Bootでサーバサイドアプリを作り、Herokuにホスティングしていました。
kikutaro777.hatenablog.com
実行環境を含めて、もう少し簡単に作る方法はないか調べていて気になったのが次の2つです。
- Twilio Channels
- Azure Bot Service
SendGridを扱っている自分としては、まずはTwilioを試さねばと思ってやってみました。内容は以下の「Channels Documentation」にある手順で簡単にできます。私は1つだけハマったので、そこをメモするためにまとめます。

Twilio Channelsの準備
Twilioにログインして、Channelsメニューを選択します。

ChannelsカタログでLINEを選びます。

インストールします。

確認ダイアログもチェックを入れて、インストールを進めます。

以下の画面になったら、受信チャネルURLをコピーして、一旦ここで作業を止めます。

LINEチャネルの準備
今度はLINE側を準備します。LINE Developersにログイン後、プロバイダーを選んでLINEチャネルを新規追加します。

アプリ名など入力してチャネルができたら、応答メッセージをオフ、Webhookwをオンにして「Messaging API設定」のボタンを押します。

Webhook URLに先ほどコピーしたTwilioの受信チャネルURLをペーストして保存します。

LINEの設定は以上です。私は最初、ここで表示されているChannel IDとChannel SecretをTwilio Channelsに設定してしまい、少しハマりました。Channel IDは使いますが、Channel Secretは不要です。
使うのは「Channel Secret」ではなく、以下の「アクセストークン(ロングターム) 」です。これを発行して値をコピーします。

Twilio ChannelsにLINEチャネルの設定をする
再びTwilio Channelsに戻り、「使用される製品」にチェックを入れたのち、先ほどのLINE準備で生成されたChannel IDとアクセストークン(ロングターム)を設定すればOKです。

TwiML Bin
最後に、応答処理を定義するため、TwiML Binを利用します。Runtimeメニューから以下のTwiML Binを開いて名前を入れて、応答内容は以下の内容を登録しました。
xml version="1.0" encoding="UTF-8"
<Response>
<Message>
<Body>ももこだよー</Body>
</Message>
</Response>

画面上にある発行されたURLをコピーして、再びTwilio Channelsの設定に戻って、CALLBACK URLにペーストします。

設定は以上です。
LINEで動作確認
作成したLINE botのQRコードを表示して、LINEの友達登録をします。これでLINEから何か話しかければ、TwiML Binで定義した内容が返ってきます。簡単ですね。
