Microsoft #Graph 開発に #Postman を使用する手順~ #2 クライアント開発編 + Tips

Microsoft Graph 開発時に Postman を使う方法の紹介、2回目です。
今回は、Graph に接続するクライアントを開発する時の Postman の使い方と、ちょっとだけ Tips を紹介します。

Graph クライアント開発時には、

をうまく使うのがポイントです。
これらの初期設定をする手順が、前回の “初期設定編” でした。

初期設定で何をしたのか、そして、Graph クライアント開発に Postman をどう使うのかを以下で紹介します。


初期設定で何をしたのか

Graph クライアント開発での Postman の効果は、以下の挙動で分かります。

Postman の初期設定ができていれば、以下が確認できます。(1回目の最後 にも確認しました)

  1. [Microsoft Graph] コレクションで、[Application] の中にある [Get App-Only Token] をクリックします。
  2. 新しいタブが開きます。[URL] に EndPoint があらかじめ入力されています。 これは文字通り “アプリ用(=ユーザー認証なしで利用できる機能)の Token を取得する” エンドポイントです。
  3. [Send] ボタンをクリックします。
  4. 応答が返ってきます。”access_token” が含まれています。

改めて URL を見てみると、

https://login.microsoftonline.com/{{TenantID}}/oauth2/v2.0/token

となっています。

実際にリクエストが送られる際には “{{TenantID}}” の部分が、初期設定で保存した 環境変数 “TenantID” で置換されます。

Microsoft Graph の各エンドポイントには、URL に “TenantID” が必ず付きます。
Postman で環境変数を使うと、メモ帳などで TenantID を覚えておき毎回 URL にコピペする手間は要りません。


TenantID, ClientID, ClientSecret 以外の値を環境変数に保存するには、[Test] スクリプト を使います。
Test Script には、リクエストの送信時に自動的に実行する JavaScript を記述できます。

[Get App-Only Token] を呼び出すと、環境変数の “AppAccessToken” に自動的に Token が保存されます。

これを保存しているのが、[Get App-Only Token] の [Test] タブにあるスクリプトです。

var json = JSON.parse(responseBody);
postman.setEnvironmentVariable("AppAccessToken", json.access_token);

Graph API では、”Application” コレクション内の各機能を呼び出す際には AppAccessToken を Bearer Token ヘッダーに含める必要があります。

これらは [Get App-Only Token] を一度呼び出すと、TenantID と合わせて環境変数の値が自動的に置換されます。
例えば [Authorization] タブを見ると、あらかじめこんな設定がされています。(図は [Get Users] のものですが、他の機能でも同様です)

念のためですが、Token の有効期限には気を付けてください。
Tokenが無効になったら、改めて [Get App-Only Token] をリクエストすれば環境変数の “AppAccessToken” が更新されます。


ユーザー権限でのリクエスト

Graph では、ユーザー権限で認証した Token でリクエストしなければならない機能も多数あります。
Postman のコレクションでいうと、[On Behalf of a User] に属する機能です。

以下の手順で環境変数 “UserAccessToken” を保存すると、それ以降の Graph API のリクエストが簡単にできます。

  1. “Microsoft Graph environment” を開きます。
  2. UserName” および “UserPassword” に認証したいユーザーのアカウント情報を入力します。パスワードも平文で保存されるので、使い終わったら削除することを忘れずに。
  3. [On Behalf of a User] の中の [Get User Access Token] をリクエストします。Token が返ってくれば成功です。
  4. Environment の “UserName” および “UserPassword” を削除しておきます。”UserAccessToken” が期限切れになるまでは “UserName”, “UserPassword” を使うことはありません。

これで “UserAccessToken” を必要とする機能を呼び出すことができます。

例えば “My Joined Teams” だと以下の通り。
URL 中の “{{UserAccessToken}}” の部分は、環境変数の値で自動的に置換してリクエストを送信してくれます。


機能によっては、URL に “UserId”, “GroupId” などを含める必要があります。
例えば、

  • “UserId” が欲しければ [Get Users] でユーザー一覧
  • “GroupId” が欲しければ [Get Groups] でグループ一覧

を取得して、それぞれコレクションの中の任意の ID を環境変数に保存します。(デフォルトだとそれぞれ 0番目を保存する Test Script が記述されているようです)

あとは各機能の URL に “UserId” なり “GroupId” なりが含まれていれば、それぞれ環境変数から取得して置換したものが送信されます。


以上が、Postman で Microsoft Graph を利用する手順です。

TenantID を気にしたり、Token をヘッダーに含めたり、必要な ID をメモしておいたり、という面倒な手順から解放されることが分かったと思います。

Microsoft Graph に接続するアプリケーションを開発する際には “Microsoft Graph REST API リファレンス” を見ながら、Postman を活用してください。

Microsoft #Graph 開発に #Postman を使用する手順~ #2 クライアント開発編 + Tips」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中