Power Apps の Office365Users.RelevantPeople 関数が結果を 10 件しか結果を返してくれない
はじめに
Power Apps の Office 365 ユーザー コネクタには、ユーザーに関連する人物をサジェストしてくれる RelevantPeople という関数があります。
しかし、この関数は結果を 10 件しか返しません。
この理由は、RelevantPeople 関数が Microsoft Graph の People API を呼び出しており、その既定値が 10 件となっているためです。Microsoft Graph を直接呼び出す場合は、OData クエリの $top
を指定することで結果の件数を変更できます。しかし、Office 365 ユーザー コネクタではその手段が提供されていません。そのため、10 件以上の結果を取得したい場合はカスタム コネクタで Microsoft Graph を呼び出す必要があります。
カスタム コネクタの作成については、すでに素晴らしい記事が存在します。今回はそちらを参考にしながら手順を説明します。
実行手順
アプリケーションの登録
まず、Azure ポータルから Azure AD にアプリケーションを登録します。
証明書とシークレット から新しいクライアントシークレットを取得します。
API のアクセス許可で People.Read を追加します。
これで準備は完了です。
カスタム コネクタの作成
全般
以下の通りに設定します。
項目 | 値 |
---|---|
スキーマ | HTTPS |
ホスト | graph.microsoft.com |
ベースURL | / |
セキュリティ
認証タイプには OAuth を指定します。
項目 | 値 |
---|---|
IDプロバイダー | Azure Active Directory |
Client ID | {{client-id}} |
Client Secret | {{client-secret}} |
Login URL | https://login.windows.net |
Tenant ID | {{tenant-id}} |
Resource URL | https://graph.microsoft.com |
スコープ | https://graph.microsoft.com/.default |
定義
要求の サンプルからインポート より、以下のように入力します。
項目 | 値 |
---|---|
動詞 | GET |
URL | https://graph.microsoft.com/v1.0/me/people?$top=100 |
Graph Explorer を使って https://graph.microsoft.com/v1.0/me/people
を実行します。その結果の JSON を応答の サンプルからインポート で登録します。
ここまでできたら、いったんカスタム コネクタを保存します。
リダイレクト URL の登録
Azure ポータルに戻り、カスタム コネクタの セキュリティ に表示されているリダイレクト URL をアプリケーションに登録します。
これでカスタム コネクタの設定は完了です。念のため接続を作成し、テストを実行して結果が返ってくることを確認してください。
実行結果
カスタム コネクタを実行すると、$top
を指定できるようになり、10 件以上の結果が返ってくることが確認できます。この方法を使えば、$filter
を指定して結果として返ってくるユーザーからグループを除外したり、組織内のユーザーに限定できます。
おわりに
カスタム コネクタを使用するためプレミアム ライセンスが必要です。
Discussion