##0. はじめに
本記事は下記の3回に分けて Postman を使用した LINE WORKS API のコール方法を書いてま〜す。
- 第1回 準備編
- 第2回 Server API 編
- 第3回 Service API 編
本記事は、第2回 の Server API 編です。
Server API 編を行う前に必ず「準備編」の作業を終わらせておいてください。
流れは下記の通りです。
- Server API 用の Access Token 取得
- 取得した Access Token で各 Server API をコール
- まとめ
#1. Server API 用の Access Token 取得
##まずは Access Token を取得してみる
Server APIs Collection の 0_GetToken フォルダで「Server Token 取得」を選択し、「Send」をクリック。
結果として、Response の Body の JSON に access_token が返ってきます。はい、簡単!1クリック!
##どうやって取得しているの?
Postman の Reqest Send をクリックすると下記のフローで処理が行われます。
① Pre-request Script → ② Request - Response → ③ Tests
それを利用して、
① Pre-request Script
JWTライブラリをHTTP経由で取得し、Server Token 用の JWT を生成して Server APIs Collection の Variable 「jwt」にセット!
Pre-request Script の JavaScript はこんな感じ。
var navigator = {};
var window = {};
// JWT ライブラリを HTTP 経由で取得
pm.sendRequest('http://kjur.github.io/jsrsasign/jsrsasign-latest-all-min.js', function (err, res) {
if (err) {
console.log(err);
} else {
// JWT ライブラリ読み込み
eval(res.text());
// Environment の PRIVATE_KEY を変数に代入
const privateKey = pm.environment.get('PRIVATE_KEY');
const header = {"alg" : "RS256", "typ" : "JWT"};
const claimSet =
{
"iss": pm.environment.get('SERVER_ID'), // Environment の SERVER_ID を iss に代入
"exp": KJUR.jws.IntDate.get("now + 1hour").toString(),
"iat": KJUR.jws.IntDate.get("now").toString()
}
// JWT 生成
const jwt = KJUR.jws.JWS.sign(null, header, claimSet, privateKey);
// Server APIs Collection の Variable にセット!!!
pm.collectionVariables.set("jwt", jwt);
console.log(jwt);
}
});
② Request - Response
①で生成した Server APIs Collection の Variable「jwt」を Body の「assertion」にセットし、Server Token 取得 API をコールすると、Response に「access_token」を返してくれる。
③ Tests
②の Response Body の「access_token」を Server APIs Collection の Variable「access_token」にセット!
結果、Server APIs Collection の Variables は、下記の状態になるはず。
「jwt」(Token 取得したら用無し)と「access_token」がセットされてる!
Server APIs Collection の Authorization を確認すると、
- TYPE:Bearer Token
- Token:{{access_token}} ← Server APIs Collection の Variable「access_token」を使用する
これを使って、Server APIs Collection 配下の各 Request は、この Access Token を使用するように設定してます。
Bot登録(1on1)の Request を例に Authorization を確認すると
のようになってるんだよ。
#2. 取得した Access Token で各 Server API をコール
1.で取得した Access Token を使って、各 Server API をコールします。
現状は、Bot API だけしかサンプルがありません。。。どんどん追加していきます。少々お待ちを!
とりあえず、Bot登録(1on1)の Request を実行してみるとこんな感じになります。
botNo が返ってきたー!!!
Developer Console の Bot にちゃんと登録されてるー。
##3. まとめ
以上で、Server API 編 終了で〜す。
1番めんどうだった Access Token の取得が1クリックで完了!
ぜひ、活用してみてください。
注意:Server API の Access Token の有効期限は、24時間です。
なので有効期限が切れたら、再度「Server Token 取得」の「Send」クリック!
現状は、Bot API だけしかサンプルがありません。。。がんばって 全 API をコールしようと思います。
Postman の設定情報を更新した際は Export して GitHub の line-works-postman の push して行こうと思っていますので watch していただければ幸いです。(twitterでもつぶやきますので@shotamaco1のフォロー願います)
次回「LINE WORKS API を Postman でコールしてみる(Service API編)」です。
Postman での Service API 用 Access Token の取得設定をメインに書こうと思います。
#Link