Microsoft Graph API の SharePoint Site 取得で最大200件までしか返却されない

:white_question_mark: Question

Integration Service のカスタムコネクタで Microsoft Graph API を利用し、SharePoint の Site レコードを取得しようとしています。レコードの最大数を変更しても最大200件までしか返却されません。

正常にページネーションが行われていないようです。
以下のリンクに記載のエンドポイントを利用しています。

参考:「サイトを検索する」

:light_bulb: Answer

原因

ページネーション設定、特に Microsoft Graph API の @odata.nextLink から次ページ用の $skiptoken を取得する設定が正しく構成されていない場合、初回レスポンス分のみが返却される場合があります。

解決策

以下の設定で Integration Service のカスタムコネクタを作成し、Studio 上で該当アクティビティを利用した際に自動ページネーションが行われるかご確認ください。以下はSharepointのサイト検索を例にしたコネクタの設定手順です。

手順

  1. 通常のコネクション作成手順に従い、「認証」タブを設定します。

  2. 「ベースAPI」で以下を設定します。

    • 「ベースURL」:https://graph.microsoft.com/v1.0
    • 「ページネーションの種類」:カーソル
  3. 「アクティビティ」>「新しいリソースを作成」>「すべてのレコードのリストを取得 (GET)」を作成します。

    • パス:Site?search=*
  4. 「ページネーション」タブで以下を設定し、保存します。

    • 「プロバイダーの次ページのトークン名」:$skiptoken
    • 「プロバイダーのページのサイズ名」:$top
    • 「ページサイズの既定値」:100(任意の値です)
    • 「次のページのトークン」:body.@odata.nextLink?$skiptoken
  5. 「アクティビティデザイナー」タブで以下を設定し、保存します。

    • 歯車アイコン >「応答のルートキーを更新」
    • 「応答のルートキー」:value
  6. 「要求を送信」をクリックし、テストリクエストを送信します。
    以下を確認します。

    • 「プロバイダー応答」に値が出力されていること
    • 「応答」に値が出力されていること
    • 「プロバイダー応答」のペイロード内の value フィールド配下の値が「応答」に出力されていること
    • 「応答フィールド」タブにフィールドが自動生成されていること
  7. 「厳選された活動」から対応するアクティビティを設定し、コネクターをパブリッシュします。

  8. Studio でパブリッシュ済みコネクタのアクティビティを読み込み、SharePoint Site の取得結果が1回のリクエストの取得件数を超えて取得されるか確認します。