Power AutomateからMicrosoft Graph APIを呼び出す

今回はPower AutomateからMicrosoft Graph APIを呼び出す方法を説明します。

Power AutomateからMicrosoft Graph APIを呼び出すためにはプレミアムコネクタを使う必要があるため、下記のいずれかのライセンスが必要となります。

  • Power Automate per user
  • Power Automate per flow
  • Power Automate per user with attended RPA

使用するAPIのアクセス許可によって使うプレミアムコネクタが異なります。

  • 委任されたアクセス許可:HTTP with Azure ADコネクタ
  • アプリケーションのアクセス許可:HTTPコネクタ

それぞれのコネクタの使い方をついて、説明します。

HTTP with Azure ADコネクタを使用する

フローの設定

作成するフローは何でもいいのですが、今回は簡単に実行できるインスタントクラウドフローから作成します。

1.Power Automate画面から「マイフロー」>「新しいフロー」>「インスタンスクラウドフロー」を選択する。

2.「フロー名」に適当な名前を設定し、「手動でフローをトリガーします」を選択して、「作成」ボタンを押下する。

3.フローの編集画面に遷移するので、「新しいステップ」を押下する。

4.「操作を選択してください」でテキストボックスに"HTTP"を入力し、「プレミアム」を選択した際に表示される「HTTP with Azure AD」コネクタを選択する。

5.「HTTP with Azure ADコネクタ」内の「HTTP要求を呼び出します」アクションを選択する。

6.本コネクタを初めて使用する場合、接続を作成する必要がある。「Base Resource URL」と「Azure AD Resource URI」の両方に以下のURLを設定し、「サインイン」ボタンを押下する。

7.認証を求められるので、Graph APIを実行したいユーザーでサインインする。

8.「HTTP要求を呼び出します」アクションで下記の設定を入力して、保存する。

方法:GET

要求のURL:https://graph.microsoft.com/v1.0/me

ヘッダー:なし

要求の本文:なし

ここまででフローの設定が完了となります。

次はこのフローを実行して、Microsoft Graph APIの実行結果を確認してみましょう。

フローの実行

1.フローの編集画面から「テスト」を押下し、「手動」ラジオボタンを選択し、「テスト」ボタンを押下する。

2.フローの実行で「続行」ボタンを押下し、「フローの実行」ボタンを押下する。

3.「完了」ボタンを押下し、フローの実行履歴を確認する。

サインインしたユーザー情報が取得できることを確認できました。

このようにHTTP with Azure ADコネクタを使うことで簡単にMicrosoft Graph APIを呼び出すことができました。

※注記

必要なアクセス許可の種類によっては、HTTP with Azure AD コネクタでは API が実行できない場合があります。

HTTP with Azure AD コネクタで実行できる権限スコープの一覧は現時点では公開されておりませんが、フローを実行した際に権限エラーが発生する場合、HTTP with Azure AD コネクタでは実行できない可能性がございますので、HTTP コネクタでの実行をお試しください。

HTTPコネクタを使用する

HTTPコネクタを使用する場合、事前にAzure ADアプリの登録が必要となります。

今回利用するアクセス許可は下記とします。

  • アクセス許可の種類:アプリケーション
  • アクセス許可:User.Read.All

※ Azure ADアプリ登録の詳細な手順は「Microsoft Graph の認証方法 - JBS Tech Blog」を参考にしてください。今回はシークレットを使用します。

フローの設定

今回も簡単に実行できるインスタントクラウドフローから作成します。

1.Power Automate画面から「マイフロー」>「新しいフロー」>「インスタンスクラウドフロー」を選択する。

2.「フロー名」に適当な名前を設定し、「手動でフローをトリガーします」を選択して、「作成」ボタンを押下する。

3.フローの編集画面に遷移するので、

4.「新しいステップ」を押下する。

5.「操作を選択してください」でテキストボックスに"HTTP"を入力し、「プレミアム」を選択した際に表示される「HTTP」コネクタを選択する。

6.「HTTP」コネクタ内の「HTTP」アクションを選択する。

7.「HTTP」アクション内で下記の設定を入力し、保存する。

  • 方法:GET
  • URI:https://graph.microsoft.com/v1.0/users/"UPN変数"
  • ヘッダー:なし
  • クエリ:なし
  • 本文:なし
  • Cookie:なし
  • 認証:Active Directory OAuth
  • 機関:なし
  • テナント:<Azure AD アプリのテナントID>
  • 対象ユーザー:https://graph.microsoft.com
  • クライアントID:<Azure ADアプリのクライアントID>
  • 資格情報の種類:シークレット
  • シークレット:<Azure ADアプリのシークレット>

ここまででフローの設定が完了となります。

次はこのフローを実行して、Microsoft Graph APIの実行結果を確認してみましょう。

フローの実行

1.フローの編集画面から「テスト」を押下し、「手動」ラジオボタンを選択し、「テスト」ボタンを押下する。

2.フローの実行で「UPN」テキストボックスにユーザー情報を取得したいユーザーのUPNを設定し、「フローの実行」ボタンを押下する。

3.「完了」ボタンを押下し、フローの実行履歴を確認する。

指定したユーザー情報が取得できることを確認できました。

HTTPコネクタでも簡単にMicrosoft Graph APIを呼び出すことができました。

取得したデータの活用

Microsoft Graph APIで取得したデータはJSON形式のため、このままでは利用できません。

Power Automateには「JSONの解析」アクションがあり、このアクションを使うことで、JSONから変数に変換できるので、取得したデータを利用することができます。

フローの設定

1.フローの編集画面に遷移し、「新しいステップ」を押下する。

2.「操作を選択してください」でテキストボックスに"JSON"を入力し、「JSONの解析」アクションを選択する。

3.「JSONの解析」アクションの「サンプルから生成」を押下する。

4.サンプルJSONペイロードの挿入が表示されるので、前回のフローの実行結果からHTTPアクションの出力の本文をコピーして、貼り付けて、「完了」ボタンを押下する。

※この操作で本文のスキーマを生成してくれます。

5.「JSONの解析」アクションの下記の設定を入力する。

  • コンテンツ:<「HTTP」アクションの本文>

ここまででMicrosoft Graph APIの出力結果を変数化する対応が終わりました。

このままだと変数化しただけなので、取得したデータをTeamsに出力するアクションを加えたいと思います。

6.「新しいステップ」を押下する。

7.「操作を選択してください」でテキストボックスに"Teams"を入力し、「チャットまたはチャネルでメッセージを投稿する」アクションを選択する。

8.「チャットまたはチャネルでメッセージを投稿する」アクションで下記の設定を入力し、保存する。

投稿者:フローボット

投稿先:Chat with Flow bot

Recipient:<メンション先のユーザー>

Message:<JSONの解析から生成された変数を指定して自由にメッセージを設定してください>

フローの実行

1.フローの編集画面から「テスト」を押下し、「手動」ラジオボタンを選択し、「テスト」ボタンを押下する。

2.フローの実行で「UPN」テキストボックスにユーザー情報を取得したいユーザーのUPNを設定し、「フローの実行」ボタンを押下する。

3.「完了」ボタンを押下し、フローの実行履歴を確認する。

4.Teamsを起動して、ボットからのメッセージを確認する。

※注記

「JSONの解析」アクションでエラーが発生することがあります。

「Invalid type. Expected String but got Null.」というメッセージの場合、値がNullの場合にエラーになります。

スキーマの定義を

        "givenName": {
            "type": "string"
        },

から

        "givenName": {},

もしくは

        "givenName": {
            "type": ["string","null"]
        },

に変更することで回避することが可能です。

まとめ

Power AutomateからMicrosoft Graph APIを呼び出す方法について、説明しました。

プレミアムコネクタのため有料ライセンスが必要となりますが、簡単に呼び出すことができました。

Power AutomateのコネクタにはMicrosoft 365上のユーザーやグループなどを操作をするコネクタが豊富に用意されていますが、細かいところまで網羅されていないので、必要に応じて、Mirosoft Graph APIを呼び出して使ってみてください。

執筆担当者プロフィール
梅村 聡

梅村 聡(日本ビジネスシステムズ株式会社)

CS本部DI部CAG所属。主にMicrosoft 365関連の開発を担当。趣味はバレーボールとアニメ鑑賞。

担当記事一覧