祝 LINE チャンネル追加！Azure Bot Service で翻訳チャットボット作成 (1)Azure Bot Service から LINE 接続 編

Azure Bot Service で作成した (または Bot Registration されている Bot Framework ベースの) チャットボットアプリ には、Skype や Microsoft Teams、Slack などへノンコーディングで接続できるチャンネルが用意されています。この度 Azure Bot Service に追加された LINE チャンネルを活用して、入力した言葉を翻訳してくれるチャットボットを作成して LINE から使うまでのプロセスを紹介します。

- Azure Bot Service について (※別のページに飛びます)
    - [Azure Bot Service とは](https://qiita.com/annie/items/cf93a7a832123946a7da#azure-bot-service-%E3%81%A8%E3%81%AF)
    - [Azure Bot Service の仕組み](https://qiita.com/annie/items/cf93a7a832123946a7da#azure-bot-service-%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF)

- Azure Bot Service で LINE 対応チャットボット作成シリーズ
    - Azure Bot Service の作成から LINE 接続まで (※このページ)
    - [Azure Bot Service × Translator Text API で翻訳チャットボット作成](https://qiita.com/annie/items/f8c5964bce2d15c26253)
    - [Azure Bot Service × QnAMaker で FAQ (一問一答) チャットボット作成](https://qiita.com/annie/items/7b63e366deeaeae63f94)
    - [QnAMaker × Azure Bot Service でノンコーディング AI Chatbot 作成 (2019年4月版)](https://qiita.com/annie/items/1b4a232c2614d05baeda)

- 手順
    - 1. Azure Bot Service から LINE 接続編
        - [準備](https://qiita.com/annie/items/1926fc16731fcaad0666#%E6%BA%96%E5%82%99)
        - [1.1. Azure Bot Service で EchoBot を作成する](https://qiita.com/annie/items/1926fc16731fcaad0666#11-azure-bot-service-%E3%81%A7-echobot-%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)
            - [QnAMaker × Azure Bot Service でノンコーディング AI Chatbot 作成](https://qiita.com/annie/items/1b4a232c2614d05baeda#12-qnamaker-%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B-azure-web-app-bot-%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B) など、Azure Bot Service を作成済みの場合は、この手順を飛ばしてください。
        - [1.2. LINE 公式アカウントの開設](https://qiita.com/annie/items/1926fc16731fcaad0666#12-line-%E5%85%AC%E5%BC%8F%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AE%E9%96%8B%E8%A8%AD)
        - [1.3. LINE Account Manager から Messaging API の設定](https://qiita.com/annie/items/1926fc16731fcaad0666#13-line-account-manager-%E3%81%8B%E3%82%89-massaging-api-%E3%81%AE%E8%A8%AD%E5%AE%9A)
        - [1.4. Messaging API のアクセストークンの取得](https://qiita.com/annie/items/1926fc16731fcaad0666#14-messaging-api-%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E5%8F%96%E5%BE%97)
        - [1.5. LINE Messaging API と Azure Bot Service アプリの接続](https://qiita.com/annie/items/1926fc16731fcaad0666#15-line-messaging-api-%E3%81%A8-azure-bot-service-%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E6%8E%A5%E7%B6%9A)
        - [1.6. LINE アプリからの接続テスト]()
    - 2. Cognitive Services Translator API で翻訳編 (※別のページに飛びます)
        - [準備](https://qiita.com/annie/items/f8c5964bce2d15c26253#%E6%BA%96%E5%82%99)
        - [2.1. Cognitive Services Translator Text API を利用する](https://qiita.com/annie/items/f8c5964bce2d15c26253#21-cognitive-services-translator-text-api-%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B)
        - [2.2. Azure Web App Bot から Translator Text API を利用する](https://qiita.com/annie/items/f8c5964bce2d15c26253#22-azure-web-app-bot-%E3%81%8B%E3%82%89-translator-text-api-%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B)
        - [2.3. チャットボットの動作確認](https://qiita.com/annie/items/f8c5964bce2d15c26253#23-%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%83%9C%E3%83%83%E3%83%88%E3%81%AE%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D)

# 1. Azure Bot Service から LINE 接続編

## 準備

### Microsoft アカウント & Azure サブスクリプション

- Microsoft アカウント
    - Azure サブスクリプション申し込みに必要です。
    - [Microsoft アカウント登録手続き](https://www.microsoft.com/ja-jp/msaccount/signup/default.aspx)
- Azure サブスクリプション
    - 無料試用版で充分です。上記↑で取得した Microsoft アカウントで申し込みを行います。(無料のプランがあるので、従量課金プランでも大丈夫ですが念のため。)
    - [Azure 無料アカウントを今すぐ作成](https://azure.microsoft.com/ja-jp/free/)
- (オプション) 作成済みの Azure Bot Service
    - 既に Azure Bot Service を作成済みの場合は、1.1 の手順を飛ばしてください

### LINEアカウント (またはビジネスアカウント)
LINE アプリでご利用中のアカウントで OK です。

## 1.1. Azure Bot Service で EchoBot を作成する

ブラウザーで [Azure Portal](https://portal.azure.com) (https://portal.azure.com) を開き、Azure サブスクリプションが紐づいている Microsoft アカウントでサインインします。
Azure Portal から左端ナビゲーションバーから **[+リソースの作成]** をクリックします。
![20190308_01.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/5fb94a82-3a54-16a4-92fc-4ad0a0d616e8.png)

*新規* ペインの検索欄に **Web App Bot** と入力し、表示される **Web App Bot** をクリックします。*Web App Bot* ペインで **[作成]** をクリックして作成に進みます。
![20190308_02.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/99569ce0-0158-c966-665f-a952e80c8044.png)

*Web アプリ ボット* ペインで必要事項を設定します。
![20190308_03.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/103847d8-f6bb-962b-ddde-d82233a976a0.png)

- ボット名
    - お好みの名前を入力します。こちら Azure Bot Service 全体で一意となる名前になるような名前を設定してください。一意となる名前を入力すると ✓ (チェックマーク) が表示されます
- サブスクリプション (※デフォルトのまま)
- リソースグループ
    - お好みのグループを新規作成 or 既存のリソースグループを選択します 
- 場所
    - Bot アプリを配置するデータセンターロケーションを選択します。ここでは **Japan East** (東日本) を選択しています
- 価格レベル
    - 開発や検証では F0 (無償版) で充分です
- アプリ名 (※自動入力)
    - 基本的にボット名と同じ名前が自動入力されますが、こちらも azurewebsites.net で一意となる必要があるため、適時修整してください
- ボットテンプレート
    - クリックして、*ボットテンプレート* ペインを開き、今回は以下を選択します
        - *SDK バージョン* : **SDK v4**
        - *SDK 言語* : C# or Node.js (お好みの方を選択)
        - テンプレート : **EchoBot**
    - **[作成]** をクリックして テンプレートの選択を確定します
- App Service プラン
    - これまでに Azure App Service を作成している場合はそちらが自動設定されている場合があります。そのまま利用する or 新規作成を行ってください
- Azure Storage
    - Bot の状態 (ステート) やログを保存するストレージを設定します。新規作成 or 既存のストレージを選択します
- Application Insights
    - アプリの稼働ログを取得するサービスです。お好みですが、ここではデフォルトのまま **オン** になっています。
- Application Insights の場所
    - Application Insights をオンにした場合に表示されます。ここでは **Japan East** (東日本) を選択しています。
- Microsoft アプリ ID とパスワード
    - デフォルトのまま **アプリIDとパスワードの自動作成** で OK です

*Web アプリボット* ペイン の一番下にある **[作成]** をクリックするとアプリが作成されます。

アプリの作成(デプロイ)が成功した旨のメッセージが表示されたら、[リソースに移動] をクリックして作成した Web アプリボット を表示します。
![20190308_04.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/50531c13-95e8-ba60-ab3d-847575bb8de7.png)

> App Service プランを新規作成した場合、プランが S1 の有償プランになっています。[すべての App Service 設定] ＞ [スケールアップ] をクリックして 無償プラン(F1) に変更しておくと良いでしょう。
![20190308_06.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/d0934686-a8ab-873f-cf51-db3720c6fd2c.png)

作成した *Web アプリ ボット* ペインのメニューから **Web チャットでテスト** をクリックします。チャット画面が表示されるので、メッセージを入力すると、オウム返し (Echo) でメッセージが返答されれば Web アプリボットは正常に作成されています。
![20190308_07.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/16075c4b-ce29-9b10-a4a5-46b59cbd03ba.png)


## 1.2. LINE 公式アカウントの開設

[LINE for Business のアカウント開設](https://www.linebiz.com/jp/entry/) Web サイト にアクセスします。
**未認証アカウントを開設する** をクリックし、まずは未認証アカウントの作成に進みます。

![20190927_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/17ca44ed-f026-0b42-8edd-32773cbc3e4a.png)

ログイン画面が表示されたら、お持ちの LINE アカウント(またはビジネスアカウント)でログインインします。

![20190927_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/c086597e-cdbf-e874-0d02-cdfb927c1aa3.png)

LINE 公式アカウント作成 のページで必要事項を入力します。

- アカウントの基本情報
    - アカウント名 : お好きなモノを (半角スペースは利用不可)
    - メールアドレス : 管理者、問い合わせ先となるメールアドレスを入力
- 業種 : 目的に合うものを選択します。個人で検証している場合は、**個人** の項目がありますのでそちらから選択すると良いでしょう

設定したアカウント名は念のためローカルに保存しておきます。
入力できたら画面下部の *確認する* をクリックして次のステップに進みます。

![20190927_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/8a9ce268-b41e-85bb-602b-6dfbd02cccdb.png)

*入力内容の確認* 画面で、入力&選択した内容を確認し、*完了する* をクリックして、公式アカウントを作成します。

![20190927_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/408e7d74-6f44-4e2b-567e-420791eda04b.png)

*LINE 公式アカウントが作成されました* と表示されたらOKです。**LINE Account Manager へ** をクリックして、LINE Account Manager の画面に進みます。

![20190927_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/be8c9e58-9caa-c156-dd7b-e8b7706146dc.png)

初回、*情報利用に関する利用について* という画面が表示される場合は **同意** をクリックして進みます。

![20190927_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/3466aba1-8f15-1eb3-2390-6ac37b251ee8.png)

## 1.3. LINE Account Manager から Messaging API の設定

Account Manager が表示されたら、画面右の **設定** をクリックします。

![20190927_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/71d44a56-98b4-bfca-4cac-5239ad3472c9.png)

アカウント設定画面が表示されたら、左列にある **Messaging API** をクリックして表示します。

![20190927_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/ebceb272-02c2-0a58-a4f0-b1504fa20208.png)

**[Messaging API を利用する]** をクリックします。

![20190927_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/2f3beeda-6d7f-0b81-1f9b-e8c00b5ecf03.png)

*プロバイダーの選択* ダイアログで、お好みのプロバイダー名を入力 (または作成済みのプロバイダーを選択) ます。念のため設定したプロバイダー名はローカルに保存しておきます。
 **[同意する]** をクリックして進みます。

![20190927_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/db3d692b-1dfe-8b39-2518-80267b1d7de6.png)

*プライバシーポリシーと利用規約* ダイアログはとりあえず未入力のまま **[OK]** をクリックします。

![20190927_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/a6b8a97b-6ad9-7840-e8b7-6b5934527303.png)

*Messaging API を利用* 確認のダイアログで、内容を確認して **[OK]** をクリックして設定を完了します。

![20190927_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/55080ff7-def9-694a-6215-044d76c044dc.png)

*Messaging API* の画面で、*ステータス* が **利用中** になっているのを確認します。その下にある Channel ID と Channel Secret をローカルに保存しておきます。 

![20190927_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/456a7a58-d124-f4e7-3fa9-026b72cd3c00.png)

*その他の設定は LINE Developers から行えます* と記載されているので、その [**LINE Developers**](https://developers.line.biz/) のリンクをクリックします。(または https://developers.line.biz/ にブラウザからアクセスします)

## 1.4. Messaging API のアクセストークンの取得

LINE Developers のページで、Messaging API をクリックします。

![20190927_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/e131f801-5f45-1338-3601-44cef643929f.png)

画面中央の Messaging API の **[今すぐはじめよう]** をクリックします。

![20190927_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/c75ef9d3-9fc9-5e60-8251-3996b8d7a066.png)

画面左バーのプロバイダーリストから、1.3. で作成したプロバイダーをクリックします。

![20190927_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/d0d859fa-6f5f-54a5-798b-09d6662a02ab.png)

表示されるチャネル(1.2. で作成した LINE 公式アカウントのアカウント名)をクリックします。

![20190927_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/cc6c37cd-b34a-c658-3b4b-c87f1e4d5499.png)

チャネルの基本設定が表示されます。画面を下にスクロールして **メッセージ送受信設定** という項目を探します。

![20190927_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/5b8d8b09-b94d-423a-79c6-10daa3beb290.png)

*メッセージ送受信設定* に記載されている **アクセストークン(ロングターム)** をコピーしてローカルに保存しておきます。再度このページで設定を行うので、ブラウザーは閉じないでおきます。

![20190927_19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/e40345bf-d38d-66d0-6e47-00c84c8294dd.png)

## 1.5. LINE Messaging API と Azure Bot Service アプリの接続

### Azure Portal から Web App Bot に LINE の接続設定を行う

Azure Portal に戻り、1.1 で作成した Web App Bot、または作成済みの Azure Bot Service を表示します。
*Web アプリ ボット* ペインのメニューから **チャンネル** をクリックします。*その他のチャンネル* に表示されている **LINE** をクリックします。
![20190308_20.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/47e89af9-68ca-a1b3-0323-c2fd91d45724.png)

*LINEを構成* のページで、ローカルに保存しておいた **Channel Secret** (チャンネルシークレット) と **チャンネルアクセストークン** を貼り付けます。
また、表示されている **Webhook の URL** をコピーしてローカルに保存しておきます。
![20190308_20_02.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/8f591d32-ea21-499f-9cdb-f74cbc42a8f9.png)

**[保存]** をクリックして、Web App Bot 側の設定を保存します。

### LINE Developer ページから Azure Web App Bot への接続設定を行う

再び LINE Developer ページを開き、作成した Message API のチャネルを開きます。
*基本情報* タブ内にある *メッセージ送受信設定* を再度表示します。

*Webhook URL* の欄にある **[編集]** をクリックして、Azure Portal から取得しておいた **Webhook URL** を貼り付け、**[更新]** をクリックして保存します。
![20190308_22.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/59a3a0b1-3aea-598c-bdbd-794da3e7ea4a.png)

**[接続確認]** が表示されたらクリックし、*✓ 成功しました* と表示されるのを確認してください。
![20190308_23.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/a5fc14f2-7cc8-55cd-fc81-13949f5f7d6f.png)

*Webhook 送信* の欄にある **[編集]** をクリックして、**利用する** を選択して **[更新]** をクリックして有効化します。
![20190308_21.PNG](https://qiita-image-store.s3.amazonaws.com/0/117583/54de7e71-5527-8ac2-2972-ac6a03ec973d.png)

さらにページをスクロールして *LINE@機能の利用* を表示します。
*自動応答メッセージ* の欄にある **[設定はこちら]** をクリックして設定ページを表示します。(LINEアプリからの本人認証が必要な場合があります。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812/ef17c2a5-7428-f1a4-3180-c01a19c785ed.png)

別のページが開くので、*応答設定* の *応答メッセージ* を **オフ** になっているのを確認します。(ボットが応答するのでココで自動応答しなくて良いですよね．．．)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812/83415b81-cbad-5f8f-39d5-bcce1d374010.png)

> *友だち追加時あいさつ* はお好みで編集してください。
編集する場合は、 *チャネル基本設定* の *友達追加時あいさつ* の **設定はこちら** をクリックして設定ページを表示します。(LINEアプリからの本人認証が必要な場合があります。)
*応答設定* の *あいさつメッセージ* の **[あいさつメッセージ設定]** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812/83415b81-cbad-5f8f-39d5-bcce1d374010.png)
テキストを修正して、**[保存を保存]** をクリックして内容を保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812/a15a9527-4513-2d1e-8f8e-57885c4738e4.png)

### 1.6 LINE アプリからの接続テスト

LINE アプリから LINE Developer ページに表示されている QR コードを読み取り、追加します。
<img width="375" alt="20190308_26.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/117583/e2f2ca5a-f9b4-6360-6064-81f14b00cdc1.png">

友だち追加メッセージが表示されたら、入力してみます。ひとまず入力した内容がそのままオウム返し (Echo) で返答されれば、接続テストは完了です。
<img width="375" alt="20190308_27.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/117583/4410242a-7797-2154-6dd9-40ede34fac97.png">


>LINE からの接続がうまくいかないときのトラブルシュート
1. 何も返答が返ってこない場合
    - LINE Developers ページでの設定
    Webhook送信: 「利用する」設定したはずなのに「利用しない」にリセットされている場合がありますので、再度確認してください
    - Azure Web Bot がスタンバイ状態
    しばらく Bot へのアクセスが無い場合、F0(無償プラン) だとスタンバイ状態になっていて、LINE からの接続がタイムアウトになる場合があります。Webチャット で動作を再度確認してから LINE アプリで確認してください
2. "Something went wrong" と表示される場合
    Azure Web App 側での動作が失敗しているときに表示されるメッセージです。Azure Web App の動作確認を行ってください

## Next Step
- [Azure Bot Service × Translator Text API で翻訳チャットボット作成](https://qiita.com/annie/items/f8c5964bce2d15c26253)
- [Azure Bot Service × QnAMaker で FAQ (一問一答) チャットボット作成](https://qiita.com/annie/items/7b63e366deeaeae63f94)