APIを使ってSmartHRとLINE WORKSを連携する―第3回 Botサーバの用意
こんにちは。
テクバン株式会社でSmartHRという
クラウド製品の連携開発を行っている担当者です。
前回の記事『APIを使ってSmartHRとLINE WORKSを連携する ―第2回 認証キーの設定』では、
APIなどの情報を呼び出して、サーバへ受け渡す処理の構築に必要な
LINE WORKSのAPIやBotの情報を設定しました。
第3回では、これらの情報の受け渡し先となるサーバーを用意していきます。
※下イメージ図の赤枠部分を作成していきます。

はじめに
今回ご紹介する内容は、前回掲載した
下の構築手順2つ目『Botサーバーの用意(Node.js, Heroku, Gitのインストール)』にあたります。
● SmartHR → LINE WORKS 構築手順
 ・LINE WORKSの認証キー・Bot情報の発行, 登録
 ・Botサーバーの用意(Node.js, Heroku, Gitのインストール)
 ・通知用のBotを作成し、公開する
 ・SmartHR Webhook URLを設定し、実際に動かしてみる
目次
『 Botサーバーの用意(Node.js, Heroku, Gitのインストール) 』
(第2回より連番)
6. Herokuアカウントの作成
 6.1. こちらから、Herokuアカウントを作成する
    表示された画面に下記表の項目を入力し、[CREATE FREE ACCOUNT]をクリックする

| 項目名 | 説明 | 
|---|---|
| First name | 登録者の「姓」を入力する | 
| Last name | 登録者の「名」を入力する | 
| Email address | メールアドレスを入力する | 
| Role | 任意の役割を選択する | 
| Country | 「Japan」を選択する | 
| Primary development language | 開発時に使用する、主要な「言語」を選択する | 
6.2. 6.1.で登録したメールアドレスに確認用メールが届くので、メール内の[リンク]をクリックする

 6.3. パスワード登録を求められるので、任意のパスワードを入力し、
    [SET PASSWORD AND LOG IN]ボタンをクリックする

 6.4. 以下の画面が作成されれば、アカウント作成完了
    [CLICK HERE TO PROCEED]ボタンをクリックすると、Herokuを利用できる

7. ローカル端末設定
7.1. 以下をローカル端末にインストールする
・Git
  7.1.1. Node.js, npm (>>  Node.js にアクセス)
      LTS -> [<対象OSのInstaller>]を選択する
※以下、[Windows Installer]を選択した場合について記載していきます

ダウンロードされた[~.msi]ファイルをクリックする

[Setup]ダイアログが表示されるので、[Next]をクリックする

[I accept the terms in the License Agreement]を選択し、[Next]をクリック

インストール先は変更せず、[Next]ボタンをクリックする

特に変更せず、[Next]をクリックする

チェックボックスを選択し、[Next]をクリックする

[Install]ボタンをクリックする

       以下の画面が表示されたら、Node.jsのインストール完了となるので、
       [Finish]をクリックする

       [Finish]をクリックすると、自動でコマンドプロンプトが立ち上がるので、
       コマンドプロンプトが消えるまで[Enter]を入力する

       黒い画面が消えると、[PowerShell]が立ち上がり、
       Node.jsを利用するために必要なツールのインストールが始まるので、
       [Type ENTER to exit]の文言が表示されるまで待機
       表示されたら、[Enter]を入力し、完了

   7.1.2. Heroku CLI (>> Heroku CLI にアクセス) 
       左のメニューから[Set up]を選択し、対象OSのInstallerをクリックする
※今回は Windows -> 64-bit installer を選択した場合について記載していきます

ダウンロードされた[.exe]ファイルを実行する

[Setup]ダイアログが表示されるので、変更せず、[Next]ボタンをクリックする

インストール先も変更せず、[Install]ボタンをクリックする

以下の画面が表示されたら、インストール完了なので、[Close]ボタンをクリックする

7.1.3. Git (>> Git にアクセス)
以下の画面が表示されるので、対象OSをクリックする
※今回は[Windows]版をインストールした場合について記載していきます

[.exe]ファイルがダウンロードされるので、実行する

[Setup]ダイアログが表示されるので、[Next]ボタンをクリックする

インストール先は変更せず、[Next]ボタンをクリックする

変更せず、[Next]ボタンをクリックする

変更せず、[Next]ボタンをクリックする

デフォルトエディタも変更せず、[Next]ボタンをクリックする

[Install]ボタンをクリックし、インストール完了


8. Botサーバの初期設定/起動
8.1. ローカル(任意の場所)にBot用のディレクトリを作成する
    ※ファイル名は任意です(今回は「lwtsuchibot」としています)
    ※ローカルで開発したプログラムをGitでHeroku(Botサーバー本体)に
     デプロイするので、ディレクトリ名や場所は任意の場所に作成して問題ありません

8.2. Botのプロジェクトを作成する

    上記コマンドを実行すると、いくつか質問されるが、
    一旦はすべて[Enter]を入力し、[package.json]ファイルを作成する

8.3. Bot用ディレクトリ配下に以下、 2ファイルを作成する
    ※「type nul」でファイルサイズ0のファイルを作成しているが、
      直接ファイル作成しても問題ない
.gitignore(Gitの管理に含めないファイルを指定するファイル)

Procfile(アプリの起動に必要なファイル)

 8.4. Node.jsで利用できるWebアプリケーションフレームワークであるexpressというパッケージを
    インストールする

8.5. Expressを使ってWebアプリケーションが起動するindex.jsファイルを作成する
    ※ index.jsは作成したディレクトリ直下に配置します
     (今回は「~\SmartHR⇔LINE WORKS\lwtsuchibot」直下です)
    ※ ファイルは文字コード「UTF-8」、改行コード「CRLF」としてください
index.js

9. Gitリポジトリの作成とコミット
Herokuへデプロイするためには、Gitリポジトリで管理する必要があります。
そのため、Gitリポジトリを作成します。
9.1. Gitリポジトリを作成する

 9.2. 改行コード自動変換対応
    (Gitにファイルをコミットする際、ファイルの改行コードがLFだと
    CRLFに自動変換してしまうため)

9.3. ローカルのファイル・ディレクトリをインデックスに登録する

9.4. 追加されたファイル等をコミットする

9.5. Herokuへログインする

上の状態で[Enter]キーを押すと、Heroku CLIへログインする画面が表示される

    [Log In]ボタンをクリックし、「 6. Herokuアカウントの作成 」で登録した
    メールアドレス・パスワードを入力すると、下図コマンドのように表示される


9.6. Herokuでアプリケーションを作成する
    ※Herokuアプリケーション名は、重複が不可
    「Name <アプリケーション名>is already taken」というメッセージが出力されたら、
     違うアプリケーション名に修正すること

9.7. Herokuへプッシュする

 9.8. 下記URLへアクセスし、「Hello World!」とページに出力されていたら成功
    https://<アプリケーション名>.herokuapp.com/

これで、Heroku(サーバー)にBotが動く環境(アプリケーション)が構築されました。
次回へ向けて
今回は、通知連携時にAPI情報やデータなどをやり取りする際の
ベースとなる環境を構築する方法についてご紹介しました。
次回は、この環境で通知用に使うBotを作成し、
LINE WORKS上に公開してきたいと思います。
>> APIを使ってSmartHRとLINE WORKSを連携する ―第4回 通知用のBotを作成し、公開する
関連記事
>> APIを使ってSmartHRとLINE WORKSを連携する ―第1回 APIとは?
>> APIを使ってSmartHRとLINE WORKSを連携する ―第2回 認証キーの設定
>> APIを使ってSmartHRとLINE WORKSを連携する ―第4回 通知用のBotを作成し、公開する
>> APIを使ってSmartHRとLINE WORKSを連携する ―第5回 Webhookを設定し、動かしてみる


