LoginSignup
11
11

More than 3 years have passed since last update.

LINE Messaging APIとAPI Gatewayでオウム返しLINE BOTを作ろう

Last updated at Posted at 2019-11-10

やること

LINE Messaging APIとAmazon API Gatewayで、オウム返しするBotを作ります。

参考

以下サイトを参考にしました。(というかそのまま)

前提

LINE developersとAWSへのアカウント登録が必要です。

構成図

このような構成を作ります。

ファイル名

LINE Messaging APIでBot用のチャネルを作り、API Gatewayで作成したAPIを呼び出します。APIは受信したメッセージをそのまま返信します。これでオウム返しBotを作ります。では、作っていきます。

1.LINE Developersでプロバイダーとチャネルを作ろう

1-1.LINE developersのサイトにログインしプロバイダーリストを開き、新規プロバイダー作成ボタンをクリックします。

1-2.プロバイダー名を入力し、確認するボタンをクリックします。

作成するボタンをクリックします。

1-3.プロバイダーが作成したら、チャネル作成するボタンをクリックして、チャネルを作成します。

必要事項を記載したら、最下部にある入力内容を確認するボタンをクリックします。

情報利用に関する同意についてを確認し、同意するボタンをクリックします。更に、利用規約に同意するかのチェックを行い、作成ボタンをクリックします。このように、Messaging APIのチャネルが作成されれば成功です。

1-4.作成したチャネルの設定を変更します。作成したチャネルをクリックし、チャネルの基本設定タブを開きます。

Webhook送信利用するにします。

自動応答メッセージの設定を開きます

Webhookをオンにします。

2.AWSのAPI GatewayでREST APIを作ろう

2-1.API Gatewayでオウム返しするAPIを作ります。API GatewayのAPIの作成ボタンをクリックします。

2-2.API名、説明などを入力し、APIの作成ボタンをクリックします。

こんな画面になります。

2-3.アクションメソッドの作成をクリックします。

2-4.POSTを選択し、チェックマークをクリックします。

2-5.エンドポイントに https://api.line.me/v2/bot/message/replyを設定し、保存ボタンをクリックします。

2-6.作成したPOSTを選択し統合リクエストをクリックします。

2-7.アクセストークン再発行ボタンをクリックします。

発行されると、このようになります。

2-8.HTTPヘッダーヘッダーの追加をクリックします。

2-9.名前にAuthorizationを、マッピング元に 'Bearer△<アクセストークン>'(△は半角空白)と入力し、チェックマークをクリックします。※ '(シングルクォーテーション)で囲むことを忘れないよう注意

2-10.マッピングテンプレートを追加します。マッピングテンプレートで application/json を新規に作成します。

テンプレートに以下を登録し保存ボタンをクリックします。

#set($data = $input.path('$.events[0]'))
{
    "replyToken": "$data.replyToken",
    "messages": [
        {
            "type": "text",
            "text": "$data.message.text"
        }
    ]
}
2-11.ヘッダーの追加が完了したら、上部にあるメソッドの実行のリンクをクリックし、POSTメソッドの画面に戻ります。

2-12.API GatewayをデプロイしてURLを取得します。アクションAPIのデプロイをクリックします。

2-12.ステージ名などを登録し、デプロイボタンをクリックします。

2-13.これでURLが作成されました。後で使うのでURLの呼び出しのURLをコピーします

3.LINE Developersでチャネルの設定を更新しよう

3-1.作成したチャネルのチャネルの基本設定Webhook送信にAPI GatewayのURLを登録します(手順 2-13 でコピーしたURL)。

URL登録後の画面はこんな感じです。

4.Botを友達登録します。

4-1.作成したチャネルのチャネルの基本設定Bot情報のQRコードから友達登録します。

登録するとこのようになります。

5.動作を確認します

5-1.以下のように、チャネルの設定により、挙動が異なりますが、送ったメッセージをオウム返しすれば成功です。

(以下は、LINEチャネルの設定による挙動の違いを示しています)

※注意事項※ AWS利用料に注意

API Gatewayは、受信したAPI呼び出しと、送出したデータ量に対して料金が発生します。今回紹介した作り方は、インターネットを経由して、どこからでもAPIを呼び出せるので、嫌がらせ(大量アクセス)によって利用料が高くなる可能性があります。使わないときは削除するなど、何か対策することをオススメします。

API Gatewayの利用料について、詳細はこちらを確認ください。
Amazon API Gateway の料金

おわりに

とりあえずオウム返しのLINE Botを作ることができました。紹介した作り方では、API Gatewayの安全対策が不十分なので、今後は、安全対策も含めたAPIの作り方を調査しようと思います。


追記 2019/11/28

APIキーでアクセス制御した方法を以下で紹介しました。

8万語の辞書を持ったインテリBotを常時利用できるようにした話
https://qiita.com/zgw426/items/67c4ef35ed62e799461b

11
11
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
11