4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LINE WORKS API を Postman でコールしてみる(Server API 編)

Last updated at Posted at 2020-01-22

##0. はじめに

本記事は下記の3回に分けて Postman を使用した LINE WORKS API のコール方法を書いてま〜す。

本記事は、第2回 の Server API 編です。
Server API 編を行う前に必ず「準備編」の作業を終わらせておいてください。

流れは下記の通りです。

  1. Server API 用の Access Token 取得
  2. 取得した Access Token で各 Server API をコール
  3. まとめ

#1. Server API 用の Access Token 取得

##まずは Access Token を取得してみる
Server APIs Collection の 0_GetToken フォルダで「Server Token 取得」を選択し、「Send」をクリック。
postman001.png

結果として、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」にセット!

postman003.png

Pre-request Script の JavaScript はこんな感じ。

Pre-request
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」を返してくれる。
postman005.png

③ Tests
②の Response Body の「access_token」を Server APIs Collection の Variable「access_token」にセット!
postman004.png

結果、Server APIs Collection の Variables は、下記の状態になるはず。
「jwt」(Token 取得したら用無し)と「access_token」がセットされてる!
postman006.png

Server APIs Collection の Authorization を確認すると、

  • TYPE:Bearer Token
  • Token:{{access_token}}  ← Server APIs Collection の Variable「access_token」を使用する

がセットされてますね。
postman007.png

これを使って、Server APIs Collection 配下の各 Request は、この Access Token を使用するように設定してます。
Bot登録(1on1)の Request を例に Authorization を確認すると
postman008.png
のようになってるんだよ。

#2. 取得した Access Token で各 Server API をコール
1.で取得した Access Token を使って、各 Server API をコールします。

現状は、Bot API だけしかサンプルがありません。。。どんどん追加していきます。少々お待ちを!

とりあえず、Bot登録(1on1)の Request を実行してみるとこんな感じになります。
postman009.png
botNo が返ってきたー!!!
Developer Console の Bot にちゃんと登録されてるー。
lwdc.png

##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

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?