AzureでLINEのbotを作ってみる
2019-10-17
azblob://2022/11/11/eyecatch/2019-10-17-azure-bot-service-000.png

こんにちは、最近寝ても寝ても眠い石川です。発作的にLINEのbotが作りたくなりました。Azure使ってる会社としてAzureを使わないわけにはいかないですよね……!と、いうわけでAzure上にbotを作ってみます。

この記事でやること

  1. Azure Bot Serviceの作成
  2. LINE Messaging APIの設定
    1. LINE Developersへ登録
    2. プロバイダーの作成
    3. チャネルの作成
  3. Azure Bot ServiceとMessaging APIを繋げる
    1. Messaging API側で必要情報を取得
    2. Azure側で設定
    3. Messaging API側で設定

1. Azure Bot Serviceの作成

まずはbotをホスティングしてくれる大枠の作成です。

すべてのサービス -> 検索窓にbotと入力するとBot Serviceが出てくるので選択します。

選択すると以下の画面へ (一つ作っていたので隠しています)

左上の +追加 からリソースを作成します。

上にある Web App Bot を選択します。

作成 を選択しましょう。

- ボット ハンドル
    - Azure上でのbotの名前です。お好きなものをどうぞ。
- サブスクリプション
    - お好きなものをどうぞ。
- リソースグループ
    - お好きなものをどうぞ。
- 場所
    - お好きな場所をどうぞ。
- 価格レベル
    - 今回はF0を選択します。
- ボット テンプレート
    - 開くと以下の画面になるのでC#のEcho Botを選択します。
- App Service プラン/場所
    - App Serviceプランがあれば選択、無ければ作成してください。

それ以外はデフォルトのままで大丈夫です。

入力したものがこちら。

問題なければ作成しましょう。

補足

App Serviceプランを作成した場合価格レベルがS1(有料枠)で作成されるので作成後のApp Serviceプランから以下を行うと無料で試すことができます。

App Serviceプラン -> スケールアップ(App Service のプラン) -> 開発/テストからF1を選択し適用

2. LINE Messaging APIの設定

今回はLINEのbotとして動かすため、LINE Messaging APIを使用します。botのアカウント発行も必要なのでLINE Developersへの登録が必要です。

2.1. LINE Developersへ登録

まずはLINE Developersにログインしましょう。普段使っているLINEのアカウントでログインできます。

初回は必要事項を記入する必要がありますが、そのあたりは他サイト等で紹介されているのでそちらを参考にしてください。

2.2. プロバイダーの作成

次にbotの発行者を作成します。ログイン後、プロバイダーリストを開き、新規プロバイダー作成へと進みます。

新規プロバイダー作成を押下すると以下の画面になるので必要事項を記入して作成しましょう。

今回はFIXERと入力して作成してみました。

完了すると以下の画面に遷移します。

2.3. チャネルの作成

上記画面のMessaging APIの チャネル作成する ボタンから作成を行います。こいつがbotアカウントとなります。

では、必要事項を埋めていきましょう。

- アプリアイコン画像
  - botアカウントのプロフィール画像
- アプリ名
  - botアカウントの名前
- アプリ説明
  - アプリの説明
- 大業種/小業種
  - 該当するものを選択
- メールアドレス
  - 作成者のメールアドレス(公開されるものではありません)
- プライバシーポリシーURL(任意)
  - プライバシーポリシーを公開していればそのURLを
- サービス利用規約URL
  - サービス利用規約を公開していればそのURLを

埋めたら入力内容を確認後、規約に同意して作成です。

3. Azure Bot ServiceとMessaging APIを繋げる

必要なものが作成できたのでそれぞれを繋げていきましょう。まずは、先ほど作成したMessaging APIを開きます。

3.1. Messaging API側で必要情報を取得

基本情報の中の Channel Secret とメッセージ送受信設定の中の アクセストークン(ロングターム) をそれぞれメモります。アクセストークンの方は初期状態だと発行されていないので発行しておきましょう。

失効までの時間を0時間にしておくと期限切れで疎通ができないといったことを防げるのでこのまま発行します。

3.2. Azure側で設定

次はAzure側です。作成しておいたBot Serviceを開きます。

接続を選択。接続可能なサービスの一覧が出てくるのでLINEを選択します。

この画面になるので必要な情報を埋めます。先ほどメモった Channel Secretアクセストークン(ロングターム) を入力。

さらに下の webhook の URL (LINE でコピー/貼り付け) と書かれているURLをメモります。

メモったら保存でAzure側の設定は完了です。

3.3. Messaging API側で設定

先ほどメモったURLを使います。 Channel Secretアクセストークン をメモったページの下部に移動すると以下のような項目があります。

Webhook送信を 利用する

Webhook URLに先ほどメモったURLを指定します。

さらにその少し下の LINE@機能の利用 というセクションのリンクを踏み設定ページに飛び以下のように設定します。

以上で設定は完了です。

Webhookを設定したページの下部にQRコードがあるので自分の端末で読み取って試してみましょう。

何かチャットを送って「Echo: + 入力した文字」が返ってきたらAzureとMessaging APIの接続は成功です。

お疲れさまでした。

botをカスタマイズすることもできますがそれは追々……やるかもしれません。

興味がある方はAzure Bot Serviceのページのビルドというメニューからソースコードがダウンロード可能です。それを改変し、デプロイするとbotのカスタマイズができます。リッチメッセージを送信したりAzure SQL Databaseと接続したりいろんなことができるので良ければ触ってみてください。