C#で開発するLINE Botアプリケーション(環境構築:Visual Studio 2017 + Azure Functions編)

この記事では、Visual Studio 2017とAzure Functionsを使用してLINE Bot アプリケーションを開発を行う手順を解説します。

1.Azure アカウント、LINE@ アカウントの準備

Microsoft Azure アカウント

Microsoft  Azureのアカウントを持っていない場合は、作成しておきます。

Azure Functions では無料のサービスプランを選択することはできないため、3000円/月のクレジットが1年間付いてくる「Visual Studio Dev Essentials」の利用をお勧めします。

LINE@アカウント

LINE Messaging API を利用するLINE@アカウントを作成します。

作成や設定の手順はこちらの記事の「LINE のセットアップ」を参照ください。 - qiita.com

2.プロジェクトテンプレートをインストールし、LINE Bot Function のプロジェクトを作成する

  1. Visual Studio Market Placeから「LINE Bot C# Template」をインストールします。
    以下のリンクで「Download」をクリックしてダウンロードしたVSIXファイルを実行するか、Visual Studioのメニュー[ツール]-[拡張機能と更新プログラム...]から「LINE Bot C# Template」を検索してインストールします。 marketplace.visualstudio.com

  2. インストール後、Visual Studio 2017 を起動し、メニューから[ファイル]-[新規作成]-[プロジェクト]を選択します。

  3. 「新しいプロジェクト」ダイアログで[Visual C#]-[Cloud]のカテゴリ内にある「LINE Bot Function」を選択します。
  4. プロジェクト名を入力し、「OK」をクリックします。(ここで入力したプロジェクト名が作成するAzure Functionの関数名の既定値となります。)

f:id:pierre3:20180318160255p:plain:w800

3.作成されたプロジェクトをビルドする

メニュー[ビルド]-[ソリューションのビルド]を選択し、ビルドエラーがないことを確認します。

4.ビルドしたFunctionをAzureに発行する

  • ソリューションエクスプローラで、作成したLINE Bot Functionのプロジェクトを右クリックし、ポップアップメニューで[発行...]を選択します

f:id:pierre3:20180318160435p:plain:w400

  • 次の画面で「Azure 関数アプリ」-「新規作成」を選択し、 「発行」をクリックします。

f:id:pierre3:20180318160708p:plain:w800

  • App Serviceの作成ダイアログで、作成するFuncsion App Serviceの設定を行います。

f:id:pierre3:20180318161128p:plain:w400

  • 「作成」をクリックするとAzure FunctionのApp Serviceが作成され、そこにビルドしたアプリケーションが発行されます。

5.LINE Developpersに、作成したFunctionのURLを登録する。

LINE Developers Console で、作成したBotアカウントを選択し、Channel基本設定画面を開きます。

f:id:pierre3:20180318162734p:plain:w800

  • メッセージ送受信設定の「Webhook送信」を「利用する」に設定します。
  • Botグループトーク参加」を「利用する」に設定します。
  • 「Webhook URL」に、作成したFunctionのURLを入力します。
    入力するAzure FunctonのURLは、既定では『https://{App ServiceのApp Name}.azurewebsites.net/api/{Function名}』となります。

f:id:pierre3:20180318164136p:plain:w600

  • LINE@機能の利用の「自動応答メッセージ」及び「友だち追加時あいさつ」を「利用しない」に設定します。

f:id:pierre3:20180318165111p:plain:w600

また、この画面に記載されているChannel Secret とアクセストークンの値は、この後の設定で必要となりますので確認しておきます。

6.LINE Messaging APIの 「Channel Secret」および「Channel Access Token」をアプリケーション設定に登録する

  1. Azureポータルで、作成したAzure Functionを選択して[Application Settings]画面を開きます。
  2. アプリケーション設定の一覧に、先ほどのChannel基本設定画面で確認した「Channel Secret」と「Channel Access Token(アクセストークン(ロングターム))」を追加します。

f:id:pierre3:20180318170305p:plain:w800

7.デバッグ情報通知用に自分のLINEアカウントを設定する

アプリケーション内のエラーの情報やデバッグ情報の通知先として、自分のLINEアカウントのUserIDを登録します。User IDは、Channel基本設定ページの一番下に記載されています。

f:id:pierre3:20180318171239p:plain:w600

これを、「DebugUser」という名前で、Azure Functionのアプリケーション設定に追加します。

f:id:pierre3:20180318171018p:plain:w800

8.動作確認

確認する端末でBOTアカウントを友達登録(※)し、メッセージを送ってみましょう。

送信したメッセージと同じ内容がBOTアカウントから返信されればOK。設定完了です。

(※)Channel基本設定(LINE Developpers)画面に表示されるQRコードを読み取ることで友達登録が可能です。