🔍

Power Apps の Office365Users.RelevantPeople 関数が結果を 10 件しか結果を返してくれない

に公開

はじめに

Power Apps の Office 365 ユーザー コネクタには、ユーザーに関連する人物をサジェストしてくれる RelevantPeople という関数があります。

https://docs.microsoft.com/en-us/connectors/office365users/?WT.mc_id=M365-MVP-5002941#get-relevant-people

しかし、この関数は結果を 10 件しか返しません。

この理由は、RelevantPeople 関数が Microsoft Graph の People API を呼び出しており、その既定値が 10 件となっているためです。Microsoft Graph を直接呼び出す場合は、OData クエリの $top を指定することで結果の件数を変更できます。しかし、Office 365 ユーザー コネクタではその手段が提供されていません。そのため、10 件以上の結果を取得したい場合はカスタム コネクタで Microsoft Graph を呼び出す必要があります。

カスタム コネクタの作成については、すでに素晴らしい記事が存在します。今回はそちらを参考にしながら手順を説明します。

https://idea.tostring.jp/?p=3947

実行手順

アプリケーションの登録

まず、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