LINE Botチャネルの作成方法

## 概要
- AWS LambdaとDynamoDBを使ってLINE Botを作ったので、その備忘録の1つです。
- この記事では、LINE Botチャネルを作成する手順を説明します。

## 前提条件
- LINEアカウントを持っていること

## アカウント作成方法
- LINE Developersへログインする
    - https://developers.line.biz/ja/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/dff310dd-fbb3-6efd-ef6c-a045342e5e6d.png)

- 今回は『LINEアカウントでログイン』をします

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/6e87a9dc-44be-26fb-e61c-e150f820423f.png" width="40%">

- 認証番号をスマホのLINEアプリへ入力し、ログインする

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/a39f00e3-e258-ea7f-b097-5b14b48d966d.png" width="40%">

- 開発コンソールへ画面遷移します。
- プロバイダー -> 作成 をクリック
    - プロバイダーとは
        - ``LINEプラットフォームを通じてサービスを提供する個人、企業、またはそのほかの組織を意味する情報です。プロバイダー名には、あなたの名前や企業名を入力してください。``
        -  [公式ドキュメント](https://developers.line.biz/ja/docs/liff/getting-started/#step-one-create-provider)
        

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/68e3b5aa-4478-4acc-b0cc-cf6bd71506c9.png)

- プロバイダー名を入力し、作成をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/0e224a79-bba6-c905-39d5-5873492009fe.png)

- 作成したプロバイダーのコンソールに画面遷移するので、Messaging APIを選択。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/59888ad4-2dee-9cc0-7e68-aa5300c5d6ae.png)

- 各項目を入力し、『作成』をクリック
    - チャネルの種類
    - プロバイダー
    - 会社・事業者の所在国・地域
    - チャネルアイコン　※任意
    - チャネル名
    - 大業種
    - 小業種
    - メールアドレス
    - プライバシーポリシーURL　※任意
    - サービス利用規約URL　※任意

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/affc790e-cb6d-8d7f-66e8-f6ef4d35a849.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/04d8d38a-5315-da7c-3937-cff3dab1979e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/e4a8c4c6-ebd2-51be-0ab6-fbdbb7c929ab.png)

## チャネルアクセストークンの取得
- Lambdaから返信する際に必要な `チャネルアクセストークン` を発行します。
    - Messaging API設定 -> チャネルアクセストークン -> チャネルアクセストークン（長期） -> 『発行』をクリック
    - これは、Lambdaの環境変数に設定します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/582ee80a-2416-35c9-eee7-aad69eec0fd1.png" width="55%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/68a57c6e-ab0e-4139-34d3-34c1ce9142dd.png" width="55%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/5177cd81-9dd0-7424-bd6b-7cfc600c7ed0.png" width="80%">

## 友達登録する
- Messaging API設定 -> QRコード　に記載されているQRコードを読み込むと、作成したLINE Botを友達登録できます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/f488c1a1-7daf-1dac-1a6f-a3b06c569183.png" width="61%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/87271b5c-3551-6430-717b-3c7035fe172e.png" width="40%">


## LINE MessagingAPI の設定
- 設定する項目は2つです。
    - Webhook URLの登録
    - 応答メッセージの無効化

### Webhook URLの登録
- LINE Botで受け取った、ユーザーからの返信内容やフォローイベントなどは、このURLへ全て送信されます。
- Messaging API設定 -> Webhook設定 -> Webhook URL -> 『編集』をクリック

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/5281fbfc-ef7c-1fbe-91d5-9e285318db1e.png" width="70%">

- APIGatewayなどで作成したエンドポイントURLを入力し、更新をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/8172bac1-d119-9402-e0d9-690c0e0db2dd.png)

- これで、URLの登録完了です。
- 『検証』をクリックすると、登録したエンドポイントへテストリクエストが送信され、レスポンスステータス200を受け取ると 成功 と表示されます。 
- 最後に忘れずに、『Webhookの利用』を有効化しておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/9047d011-d2af-619b-6ed1-72b89fff42d7.png)


### 応答メッセージの無効化
- Lambdaを使って応答メッセージを送信する予定なので、デフォルト設定されている応答メッセージは無効化しておきます。
- Messaging API設定 -> LINE公式アカウント機能 -> 応答メッセージ -> 『編集』をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/c94d3e5f-1181-e656-9285-8f4af9d22f3c.png)

- 別タブで LINE Official Account Manager の画面が開かれるので、『応答メッセージ』をオフにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/fae9b953-4a2e-7bea-e5fd-b3594688623b.png)

- 以上でLINE Botチャネルの作成及び、設定の完了です。