LINE WORKS API を Postman でコールしてみる（準備編）

#0. はじめに
本記事は下記の３回に分けて Postman を使用した LINE WORKS API のコール方法を書きまーす。
 
 * 第１回 準備編
 * [第２回 Server API 編](https://qiita.com/shotamaco/items/dd58bd7e2e67533c2be7)
 * [第３回 Service API 編](https://qiita.com/shotamaco/items/886d6f64db9189ee7135)

本記事は、準備編になります。
準備編の流れは下記の通りです。

 1. こんなの作ります
 2. まずは、Developer Console の設定
 3. GitHubからPostmanの設定データをインポート
 4. Postmanに設定している環境変数の説明と設定
 5. まとめ

#1.こんなの作ります
Postman を使用して、LINE WORKS の Server API と Service API をコールする環境を 準備編 + Server API 編 + Service API 編で作ります。
面倒な Access Token も Postman で取得・保持する方法も載せちゃいます。
※現状は、Postman ですべての API をコールする状態ではありません。Postman の設定情報を更新した際は Export して GitHub の [line-works-postman](https://github.com/shotamaco/line-works-postman) の push して行こうと思っていますので watch していただければ幸いです。（[twitter](https://twitter.com/shotamaco1)でもつぶやきますので[@shotamaco1](https://twitter.com/shotamaco1)の[フォロー](https://twitter.com/shotamaco1)願います）
![goal.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/3cf164dd-37b1-af71-ad9f-2831f87f44c5.png)


#2.まずは、Developer Console の設定

LINE WORKS API コールに必要な下記のデータを Developer Console の設定を行って取得しておく。
これらのデータを Postman の Enviroment に設定するので重要。

 * Domain ID
 * API ID
 * Service API Consumer Key
 * Server API Consumer Key
 * Server List（ID登録タイプ）
   * ID
   * 認証キー

![console01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/91c57728-7aaa-b686-ca90-d1acac6bdffe.png)
![console02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/410d2696-27ee-03d7-a36c-256a6d20fb72.png)

##Service API Consumer Key 発行時の設定

いずれすべてのAPIをコールする予定なので、すべての項目をONにする。
![ServiceApiConsumerKeySelect.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/12117cf5-4e55-343e-b9b1-94b36d6c0d1a.png)

Tokenの有効期限は適当でOK。Postmanで簡単にTokenを取得するようにするので。
![ServiceApiCunsumerKeyDate.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/fc154f92-b1e9-434d-5d07-6f187fcf0050.png)

##Server API Consumer Key 発行時の設定

いずれすべてのAPIをコールする予定なので、すべての項目をONにする。（カレンダーの照会はONにできない。。。）
![ServerApiConsumerKeySelect01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/3e1fee21-2217-40b6-c64b-56dc15ebc722.png)
![ServerApiConsumerKeySelect02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/30aa4ecc-2834-20c4-a473-f4b4abf17f51.png)

Tokenの有効期限は適当でOK。Postmanで簡単にTokenを取得するようにするので。
![ServerApiConsumerKeyDate.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/7b5b2edd-1aec-baa8-ed06-b88b1c32df7c.png)

#3.設定ファイルをPostmanにインポート
GitHub の [line-works-postman](https://github.com/shotamaco/line-works-postman) リポジトリのPostman 設定ファイルをローカルの Postman にインポートします。

##LINE WORKS 用の Workspace 作成
まずは Postman に LINE WORKS 用の Workspace を作成します。Workspace 名は適当でOK。

「Create New」をクリック。
![postman01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/9d8c1f49-18f0-fcb3-bfcf-765511336ce8.png)

「Name」（Workspace名）を適当に入力。「Create Workspace」をクリック。
![postman02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/2993d37a-894d-3650-59ab-da86ba838034.png)

LINE WORKS 用の Worksplace が作成されました。
![postman03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/80ea0917-ce37-7d31-b4de-1d2248c5f5cd.png)


##GitHubから設定ファイルをダウンロード

GitHub より [line-works-postman](https://github.com/shotamaco/line-works-postman) をクローンまたはダウンロードします。（今回はダウンロードのする方法で説明します）
![gitdownload.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/ae21f4cd-41cf-6f81-312a-6672477a3c3b.png)


ダウンロードしたZIPを回答すると下記の構成になっています。
![gitpostgman.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/f6ebc20c-c6aa-4cf4-65d5-401896ba96e8.png)

##Environment ファイルのインポート

ローカルの Postman に Enviroment ファイルをインポートします。

「Manage Environments」ボタンをクリック。
![postman040.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/560cc560-1943-4301-e512-c15c43dde491.png)

「Import」ボタンをクリック。
![postman04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/8217445d-5850-b9ab-2eae-22df62c36594.png)

「ファイル選択」ボタンをクリック。
![postman05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/db610c25-6fe9-ecbb-5d11-500623745a28.png)

ダウンロードし解答した「Environments/DomainEnv.postman_environment.json」を選択して「開く」をクリック。
![postman051.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/21329155-7ef3-7797-905c-84d180b0a29e.png)

DomainEnvが追加されればOK！
![postman06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/3827f1ea-b29e-fb15-edf9-bffbb1bcf28b.png)


##Collection ファイルをインポート

ローカルの Postman に Server API と Service API の Collection ファイルをインポートします。

「Import」ボタンをクリック。
![postman101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/2f355edb-f923-633f-7a34-e8e7bf3ec0b8.png)

「Choose Files」ボタンをクリック。
![postman102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/9bb18b0e-abe5-81d1-2d67-2888e2d69901.png)

ダウンロードし解答した「Collections/Server APIs.postman_collection.json」と「Collections/Service APIs.postman_collection.json」を選択して「開く」をクリック。
![postman103.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/9685c566-828d-d779-22aa-a3ff3dff9d39.png)

Server API と Service API の Collection が表示されればOK！
![postoman103.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/98d8ffef-73dd-e905-8ebb-24436c61ea77.png)


#4.Postman 環境変数の説明と定義

Postman の Environment と Collection に Variable （変数）を定義しています。
各変数の値を自分の LINE WORKS の環境の値に変えれば、すぐに API をコールすることができる感じです。

##Environment 説明と定義

Environment には、おもに LINE WORKS API を使用する際に必要な Developer Console で発行した情報等を設定するようにしています。
また、Server API、Service API 共通で使用する画像やアカウントIDを登録しています。
Environment は、Domain 単位で定義することにより API のコール先を簡単に切り替えれることを目的に使ってます。
Environment の変数定義の命名規則は、すべて大文字で単語をアンダースコアでつないでます。例えば、DOMAIN_ID、API_ID の用になります。
「Manage Environments」ボタンをクリック。
![postman040.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/560cc560-1943-4301-e512-c15c43dde491.png)

「DomainEnv」をクリック。
![postman06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/3827f1ea-b29e-fb15-edf9-bffbb1bcf28b.png)

各値を修正して「Update」をクリック。
※ ドメイン名は LINE WORKS にログインする際の @ 以降の文字列です。（ログインIDが sample01@works-qiita の場合 、ドメイン名は works-qiita です）
![postman106.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/3b1f70ae-8515-1006-a7b5-e07aef8225f8.png)

編集した Environment を選択します。
![postman025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/f15a3269-c5b0-f69b-4fe0-22564ab8245f.png)

##Collection 説明

Collection には、おもに API 実行結果を変数にセットして、次の API で使用する場合に使用しています。
例えば、Bot 登録 API をコールした結果 Bot No が Response されるのでそれを Postman の Tests で Collection の変数に登録してます。
Collection の変数定義の命名規則は、すべて大文字で単語をアンダースコアでつないでます。例えば、bot_no_01、access_token の用になります。
「Server APIs」の「・・・」をクリックし、「Edit」をクリック。
![postman105.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/f5a2fe25-33c1-fbc9-53ae-d749223a0cb4.png)

「Variables」タブをクリック。ここでは特に修正する必要はありません。
※ API コールの結果が登録されるためAPIをコールしていない場合は何も定義されていないかもです。
![スクリーンショット 2020-01-15 0.52.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/c763b0b8-beac-646b-2f91-fbcc0e1d8f0f.png)

#5. まとめ

以上で準備完了でーす。

Environment の変数は大文字、Collection の変数は小文字にすることによって、Request でどちらの変数を使用しているかをひと目で分かるようにしています。
![postman201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528703/2ce9836d-20c5-f7a8-b124-d71d67d89607.png)

ここまでくれば、Server API は、上から順番に Request を Send すれば、APIをコールできます。
詳しい使い方は、次回「[LINE WORKS API を Postman でコールしてみる（Server API編）](https://qiita.com/shotamaco/items/dd58bd7e2e67533c2be7)」で書きたいと思います。
Service API の方は、Access Token の取得設定をしていない（正確には、Postman に OAuth の設定をしてもエクスポートするすべがない。。。）ので使用できません。
なので「[LINE WORKS API を Postman でコールしてみる（Service API編）](https://qiita.com/shotamaco/items/886d6f64db9189ee7135)」で書こうと思います。

#Link
  * [LINE WORKS Developers](https://developers.worksmobile.com/)
  * [LINE WORKS ガイド（全般）](https://guide.worksmobile.com/)
  * [LINE WORKS ガイド（管理者画面）](https://guide.worksmobile.com/admin/)
  * [LINE WORKS コミュニティ](https://community.worksmobile.com/)
  * [LINE WORKS ヘルプセンター](https://help.worksmobile.com/)
  * [LINE WORKS Blog](https://line.worksmobile.com/jp/blog/)
  * [さわってわかったLINE WORKS](https://ascii.jp/elem/000/001/955/1955720/)