こんにちは。
LINE bot作り第2回です!
前回はbotを作成するために、LINE Developersというサービスに登録し、
LINE botのチャンネルを実際に開設してみました。
今回はこの開設したLINE botの動作をプログラムから制御するための環境を準備していきます。
今回のテーマ
記事のタイトルにもありますが、準備編後半の今回は bot制御アプリの開発環境を構築していきます。
LINE botを作成する上で必要な技術やツールが多々登場し、少し難しくなるかもしれませんが、頑張っていきましょう。
LINE bot作成のために必要な準備項目は以下の通りです。
①Line Developer アカウントの開設 (前回の記事参照)
②チャンネル作成 (前回の記事参照)
③Herokuへの登録と、プロジェクトの作成
④gitとクライアントツールのインストール
⑤パッケージ管理ツールのインストール
⑥LINE BOT SDKのダウンロード
このうち、前回までに①②を作成したので
今回は残りの③④⑤⑥を実施していきます。
LINE bot をプログラムで制御する仕組み
準備作業に入る前に、まずはLINE botをアプリケーションから制御する仕組を見ていきましょう。

ユーザーがLINEでbotアカウントに対して、何かメッセージを送るなど操作を実行すると
LINEが管理しているサーバに対して、処理が送信されます。①
ただし、LINEのサーバには開発者がLINE botを制御するための独自アプリケーションを配置することはできません。
そこで、独自アプリを用いてLINE botを高度に制御したい場合、LINEサーバは
開発者が制御アプリを配置している任意のサーバ対して、処理を転送する仕組みを取っています②
この転送の仕組みとしては、Webhookというサーバ間の処理転送で一般的な方式を採用しています。
前回作成したbotの設定項目を見てみると、
Webhook送信、Webhook URLという項目が確認できます。
この項目を「利用する」に設定し、転送先のサーバのURLを指定すると、外部サーバのアプリケーションからLINE botを制御できるという仕組みです。

こうして転送された処理情報を、外部サーバのWebアプリで処理し、結果をLINEサーバに返信③そして、ユーザのスマートフォンに対して最終的に処理結果が戻されるという流れになっています。
③Herokuへの登録と、プロジェクトの作成
ということで、外部サーバに制御用のアプリケーションを配置していくのですが、
WEBサーバ、アプリケーションサーバなどを一から構築するとかなりの労力がかかるため、今回はHerokuというPaasを利用していきます。
Herokuのサービス内容の詳細はググるなどして調べていただきたいのですが、
HerokuではWEBアプリが動作する環境が既にに用意されているため、
開発者はHerokuに対してアプリケーションをデプロイ(アップロード)するだけで簡単に動作させることができます。
まずはこのHerokuの利用登録をしていきましょう。
下記のURLにアクセスし、表示されたページ内の「無料で新規登録」をクリックします。

色々出てくるので必要事項を入力していきましょう
今回はPHPを利用して開発していくため、主な使用言語の箇所は「PHP」を選択してください。

その後、入力したメールアドレスに送信されてくる登録メールから、正式な登録を行ってください。
登録が完了したら、次にHeroku CLIというコンソールツールを開発PCにインストールします
※Heroku CLI …コマンドを使ってHerokuを制御したり、アプリから出力されるログを確認できるコンソールツール
下記のURLにアクセスします。
https://devcenter.heroku.com/articles/heroku-cli
ページを下にスクロールして、利用するPCに応じたインストーラーからインストールを実行してください。

インストールが完了したら、コマンドプロンプトを起動し、heroku と入力してみましょう
インストールができていれば、以下のような実行結果が返ってきます。

そして次に、Heroku上にプロジェクトを作成します。(プロジェクト=アプリ名のようなものです)
画面上のNew→Create new appをクリックします。

App Nameに、任意の名前を入力し、Create appをクリックします。
ちなみに、既に他のユーザーが利用している名称の場合は登録できません。

これでLine bot用のプロジェクトが作成できました。
④gitとクライアントツールのインストール
次に、Herokuにアプリケーションをデプロイするための方法としてGitを利用できるので
Gitの利用環境を開発PCに構築していきましょう。
Gitはコンソールからもコマンドで操作できますが、ここではより分かりやすく管理できるGUIツールとして
無料でSVN利用者でも扱いやすい「Tortoise Git」を使っていきます。
まず先に下記からGit自身をインストールします。
https://gitforwindows.org/
ダウンロードボタンをクリックしてインストールしていきましょう。
次に、TortoiseGitのインストーラとランゲージパックを下記のページからダウンロードします。
自分の端末と同一のbit OS用のインストーラーからインストールしてください。
次に、TortoiseGitのインストーラとランゲージパックを下記のページからダウンロードします。
https://tortoisegit.org/download/
自分の端末と同一のbit OS用のインストーラーからインストールしてください。

インストールが終わった後は、ランゲージパックを適用して日本語化していきます。
デスクトップなど適当なところで右クリック、TortoiseGit→Settingsをクリックします。

左メニュー最上段のGeneral→Langageを日本語と設定し、適用→OKで日本語化できます。

次に、左メニューのGitを選択し、ユーザー情報内の名前とメールを設定していきましょう。

⑤パッケージ管理ツールのインストール
次に、composerという、パッケージ管理ツールをインストールしていきます。
composerを利用することで、LINE bot開発に必要なLINE BOT SDKをインストールする際に
依存関係にある必要なライブラリをまとめてダウンロードしてくれます。
ただし、このcomposerをインストールするには先にPHPがインストールされていなければならないため、PHPをまずインストールしていきます。
下記のサイトから、PHPのZipをダウンロードします。Thread Safe の適切なbit数のものを選んでください。
https://windows.php.net/download/

ダウンロードが完了したら、ZIPファイルを展開して、Cドライブ直下に配置します。
また、ユーザー環境変数のPathに、「C:\php」を追加しておきましょう。

コマンドプロンプトを開き、「php -v」と入力してみましょう。
PHPのバージョンが表示されればインストールの完了です。

PHPのインストールが完了したら、次にcomposerをインストールしていきます。
下記のページから、composer-setup.exeをダウンロード後、インストールしてください。
https://getcomposer.org/download/
インストールが終わった場合は、マシンを再起動しコマンドプロンプトで「composer -v」と入力してみましょう、
インストールされていれば、下記のような表示となります。

⑥LINE BOT SDKのダウンロード
LINE BOTが持つ機能を利用するために、LINE BOT SDKをアプリケーションフォルダにダウンロードします。
まず、アプリケーションのルートフォルダを任意の場所に作成します。
(ここではnekonote_botというアプリケーションルートフォルダを作成しました)

gitでこのアプリケーションを管理するため、このフォルダをgitローカルリポジトリに設定しましょう。
作成したフォルダを右クリック→Gitここにリポジトリを作成をクリックします。

下の様なダイアログが表示されるので、チェックは入れずOKをクリックします。


これで、このフォルダがGitでの管理対象となりました。
続いて、このフォルダにcomposerを利用してLINE BOT SDKをダウンロードします。
コマンドプロンプトを開き、CDコマンドでアプリケーションルートフォルダまで移動してから下記のコマンドを実行します。
composer require linecorp/line-bot-sdk
成功すると、コマンドプロンプトにこのようなメッセージが出力されます。

アプリケーションフォルダの中に、vendorフォルダ、composer.jsonファイル、composer.lockファイルが作成されました。
これでLINE BOT SDKのダウンロードの完了です。

ここまでで、LINE botを開発する一通りの準備ができました。
お疲れさまでした。
次回から、実際にLINE botを制御するソースコードを書いていきたいと思います。