Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

Twilio ChannelsとTwiML Binで簡単なLINE botを作る

久しぶりに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つだけハマったので、そこをメモするためにまとめます。
f:id:kikutaro777:20190513234550p:plain

Twilio Channelsの準備

Twilioにログインして、Channelsメニューを選択します。
f:id:kikutaro777:20190513233008p:plain

ChannelsカタログでLINEを選びます。
f:id:kikutaro777:20190513233040p:plain

インストールします。
f:id:kikutaro777:20190513233107p:plain

確認ダイアログもチェックを入れて、インストールを進めます。
f:id:kikutaro777:20190513233139p:plain

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

LINEチャネルの準備

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

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

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

LINEの設定は以上です。私は最初、ここで表示されているChannel IDとChannel SecretをTwilio Channelsに設定してしまい、少しハマりました。Channel IDは使いますが、Channel Secretは不要です。

使うのは「Channel Secret」ではなく、以下の「アクセストークン(ロングターム) 」です。これを発行して値をコピーします。
f:id:kikutaro777:20190514000445p:plain

Twilio ChannelsにLINEチャネルの設定をする

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

TwiML Bin

最後に、応答処理を定義するため、TwiML Binを利用します。Runtimeメニューから以下のTwiML Binを開いて名前を入れて、応答内容は以下の内容を登録しました。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Message>
        <Body>ももこだよー</Body>
    </Message>
</Response>

f:id:kikutaro777:20190513233716p:plain

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

設定は以上です。

LINEで動作確認

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

f:id:kikutaro777:20190514001403g:plain

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村