# Herokuでサンプルボットを作成する
このチュートリアルでは、LINE Messaging API SDK for Java (opens new window)を使って、単純なEchoボットとすべての機能を備えたKitchensinkボットをHeroku (opens new window)でデプロイする方法を説明します。
サンプルボットを別言語でデプロイしたい場合は、以下のLINE Messaging API SDKリポジトリを参照してください。
- PHP (opens new window)
- Go (opens new window)
- Perl (opens new window)
- Ruby (opens new window)
- Python (opens new window)
- Node.js (opens new window)
# 始める前に
以下の作業が完了していることを確認します。
- ボット用のチャネルを作成する。
- Herokuアカウントを作成する (opens new window)(作成は無料です)。
# Echoサンプルボットをデプロイする
受け取ったテキストメッセージをエコーするボットをデプロイする手順は、以下のとおりです。
LINE Developersコンソールで、Messaging APIチャネルのチャネルシークレットとチャネルアクセストークンを確認します。
サンプルボットを構築する場合は、構築を簡単にするために、長期のチャネルアクセストークンの使用を推奨します。ただし、実環境ではセキュリティ強化のため、最新版(有効期限付きチャネルアクセストークンv2.1)の使用を推奨します。
GitHubの
sample-spring-boot-echo
ディレクトリのREADMEファイル (opens new window)に含まれる[Deploy to Heroku]ボタンをクリックします。HerokuのCreate New Appページが表示されます。
手順1で確認した値を使って、[App name](任意)、[LINE_BOT_CHANNEL_TOKEN]、および[LINE_BOT_CHANNEL_SECRET]の各フィールドに入力し、[Deploy app]をクリックします。次の手順で使うので、アプリ名は記録しておきます。アプリがデプロイされるまでしばらく待ちます。
LINE Developersコンソールで、Messaging APIチャネルの[Messaging API設定]タブをクリックします。
「
https://{HEROKU_APP_NAME}.herokuapp.com/callback
」というURL形式で、Webhook URLを入力します。
注:{HEROKU_APP_NAME}
は手順3で指定したアプリ名です。[Webhookの利用]を有効にします。
注:デフォルトではオフに設定されています。
LINE Developersコンソールのチャネル設定から[Messaging API設定]タブにあるQRコードを読み取って、ボットが関連づけられているLINE公式アカウントを友だち追加します。
LINE公式アカウントにLINEでテキストメッセージを送り、送信した内容と同じメッセージが返ってくることを確認します。
Messaging APIを使うときは、チャネルの[Messaging API設定]タブで[応答メッセージ]と[あいさつメッセージ]の設定が「無効」になっていることを確認してください。
# Heroku CLIでログを確認する
ボットのログをHerokuで確認する手順は、以下のとおりです。
Heroku CLI (opens new window)をダウンロードし、インストールします。
ターミナルまたはコマンドラインアプリケーションを使って、Herokuにログインします。
$ heroku login
ログを確認します。注:
{HEROKU_APP_NAME}
は手順3で指定したアプリ名です。$ heroku logs --tail --app {HEROKU_APP_NAME}
# Kitchensinkサンプルボットアプリをデプロイする
Kitchensink (opens new window)サンプルボットアプリには、テンプレートやイメージマップメッセージなど、Messaging APIで利用できるすべての機能が含まれています。Kitchensinkボットをデプロイするには、Herokuダッシュボードで新しいHerokuアプリを作成します。
LINE Developersコンソールで新しいチャネルを作成し、チャネルシークレットとチャネルアクセストークンを確認します。[Messaging API設定]タブにあるQRコードを読み取って、ボットが関連づけられているLINE公式アカウントを友だち追加します。
GitHubのline-bot-sdk-java (opens new window)リポジトリのクローンをローカルコンピューターに作成します。
Procfile
を開き、すべてのecho
をkitchensink
に置き換えます。// Before web: java $JAVA_OPTS -jar sample-spring-boot-echo/build/libs/sample-spring-boot-echo-*.jar --server.port=$PORT // After web: java $JAVA_OPTS -jar sample-spring-boot-kitchensink/build/libs/sample-spring-boot-kitchensink-*.jar --server.port=$PORT
sample-spring-boot-kitchensink/src/main/resources/
の下にあるapplication-template.yml
のファイル名をapplication.yml
に変更します。手順1で確認した値を、application.yml
のchannel-secret
フィールドとchannel-token
フィールドに入力します。「This is a template for the configuration file. Make a copy called `application.yml` and change the values below.」の部分は削除します。Herokuダッシュボードで新しいHerokuアプリを作成して、アプリ名をコピーします。
ローカルの
line-bot-sdk-java
ディレクトリに移動してGit™リモートを追加します。注:{HEROKU_APP_NAME}
は手順5で指定したアプリ名です。$ heroku git:remote -a {HEROKU_APP_NAME}
変更をHerokuにプッシュします。
$ git add . $ git commit -m 'First commit' $ git push heroku master
「
https://{HEROKU_APP_NAME}.herokuapp.com/callback
」というURL形式で、Webhook URLをLINE Developersコンソールに入力します。LINEを使って以下の機能をLINE公式アカウントで試してみます。
- 「profile」と入力して、ユーザープロフィールを取得する。
- 「buttons」、「confirm」、または「carousel」と入力して、テンプレートメッセージを送る。
- 「imagemap」と入力して、イメージマップメッセージを送る。
- LINE公式アカウントをグループチャットに招待する。「bye」と入力すると、グループチャットからLINE公式アカウントを退出させられます。
- LINE公式アカウントに画像、音声、動画、位置情報などを送る。ボットはこれらのコンテンツを取得し、同じものを送り返してきます。
ボットをデプロイした後、起動するまでに時間がかかる場合があります。すぐに返ってこなかった場合は、 数分後にもう一度やり直してください。
# 次のステップ
Messaging APIを使ったボットの作成方法について詳しくは、「ボットを作成する」と『Messaging APIリファレンス』を参照してください。