2023-06-22

MTのDataAPIで認証してテンプレートの内容を取得するのをPostmanで試す

API周りを確認するときに、 Postman で試すことが多い。

MTの Data API リファレンスを見ていて、

Movable Type Data API v6
https://movabletype.github.io/...

「Retrieve single template by its ID」はテンプレートの中身が返ってくるのであってたよなぁ?というのがぱっと見わからなかったので確認してみた。

20230622 051021

結果としては text に入ってくるのは確認できた。
Response samples の方にもなんか書いてほしいような気はしつつ。。。

DataAPI で認証する

まずMTの認証をして token を取得する。

エンドポイントは /mt-data-api.cgi/v6/authentication

20230622 062817

DataAPIで特定のテンプレートを取得する

エンドポイントは /mt-data-api.cgi/v6/sites/{site_id}/templates/{template_id}
認証時の レスポンスに入ってきている accessToken を利用する。
テンプレートIDとるところは割愛。

Header に X-MT-Authorization のリクエストヘッダとして MTAuth accessToken=<ACCESS_TOKEN> の形でセットする

クイック スタート ガイド - Data API ドキュメント | CMSプラットフォーム Movable Type ドキュメントサイト
https://www.movabletype.jp/dev...
20230622 051612

ひとまずこれで、指定したテンプレートの中身が見えているのが確認出来た。

Token を保存して利用する

AccessToken をコピって使うのは多分違うよなとおもってしらべてみた。
変数にセットする方法がある。

Postmanで認証ありのAPIを叩けるように設定してみた
https://zenn.dev/rescuenow/art...
Writing tests | Postman Learning Center
https://learning.postman.com/d...

collection を作ってその中で認証のところと、テンプレート取得の所をまとめておく。

20230622 052554

認証の方で、Tests のタブの中で collectionVariables にセットしておくことで、そのコレクション内で利用できる。

var data = JSON.parse(responseBody);
pm.collectionVariables.unset("accessToken2");
pm.collectionVariables.set("accessToken2", data.accessToken);

Headervalue を指定するところで {{ を入力すると先ほどセットした accessToken2 がサジェストされる。

20230622 052818

これで Token が有効な間は認証が必要なAPIも確認できる。

変数にはグローバルのもあるようで

var data = JSON.parse(responseBody);
pm.globals.unset("accessToken");
pm.globals.set("accessToken", data.accessToken);

こんな感じでグローバル変数としてセットすることで、

20230622 062215

コレクションにいれなくとも利用することが出来る。

参考記事