LineSimulatorというイカしたツールを試してみた(ローカル実行編)

投稿者: | 2017年12月7日

前回のブログでLineSimulatorをローカル環境で実行する方法について記載しました。

今回はAzure Functionをローカルでデバッグ実行してLineSimulatorとデータ通信する方法について記載していきます。

 

※本記事は2017年12月8日時点の情報となります。

 

前回の記事は下記を参照してください。

LineSimulatorというイカしたツールを試してみた(環境構築編)
LineBotの開発するときに従来であればLineの実アカウントに対してリクエストを行い開発を進める方法が主流かなとおもいます。サーバにデプロイして確認したり、ngrokの...

 

ローカル実行について

今回は前提としてVisualSutdio 2017を利用してAzure Functionsをローカル実行します。Azure Functionsの作成方法や開発環境構築については本記事では割愛しますので下記のリンクを参考にしてください。

Visual Studio を使用して Azure で初めての関数を作成する
Azure Functions Tools for Visual Studio を使用して、HTTP によってトリガーされる単純な関数を作成し、Azure に発行します。

 

とりあえずVisualStudio2017を起動してAzure Functionsのテンプレートからプロジェクトを作成します。プロジェクトを作成したらプロジェクトを右クリックして追加からFunctionをHttpTriggerで作成しましょう。HttpTriggerでFunctionを作成したら下記のソースを参考にLineBotを作成してください。

 

 

コーディングが完了したらビルドしてエラーがなければF5で起動しましょう。Function向けのデバッグCLIが起動したらLineSimulatorを起動します。LineSimulatorの起動方法はWindowsであればコマンドプロンプトを管理者で立ち上げてLineSimulatorのフォルダに移動して”npm start”とコマンドを叩けば実行されます。※環境構築済みであることが前提です。

 

LineSimulatorを起動したら設定の「Bot API Server Address」にローカルで実行されているFunctionsのURLを設定します。ローカルで実行されているFunctionsのURLはFunctionsCliが起動したら下のほうに表示されるのでそこを参考にしてください。

 

設定が完了したらLineSimulatorで文章を入力して送信してみましょう。上記のサンプルソースはオウム返しするコードなので入力した文字がオウム返しされれば成功です。

※私は下記の画像のように向かって左側にLineSimulatorを配置し、右側上段にFunctionsCliを右側下段にnpmを配置してデバッグしています。

 

LineSimulatorを使えばローカル環境のみでLineBotの作成が可能になるので非常に便利だと思います。ただ、LineSimulatorを利用するとChannelAccessTokenがdummyTokenになるので、そこら辺の設定をちゃんと実装しないと実際のLineAPIに接続するときにエラーになるので注意が必要です。

上記のサンプルソースで言うとChannelAccessToken の”dummyToken”の部分をLineDeveloperCenterで取得できるアクセストークンに置き換えてあげる必要があります。また、API呼び出しのURLの部分を「http://localhost:8080/v2/bot/message/reply」から本番のURL「https://api.line.me/v2/bot/message/reply」に変更する必要もあります。

今回はあくまでローカル環境での実行に特化してますので、作成したLineBotをクラウドにデプロイするときは設定周りに注意してください。

ということで年始年末の暇な時間はLineSimulatorとAzure Functionsを使ってLineBotの作成に勤しむのも一興かと思います。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA