批次載入使用者的電子郵件

已完成

您建立 JavaScript 應用程式,將應用程式連線到 Microsoft 365,然後使用 Microsoft Graph 顯示使用者最後 10 封電子郵件。 現在讓我們擴充應用程式,讓使用者可以分批載入 10 個項目的電子郵件。

使用 Microsoft Graph 來擷取頁面資料

當您呼叫會返回資料集合的 Microsoft Graph API (例如您稍早使用的郵件 API) 時,您會接收到儲存在 Microsoft 365 中的資料子集。 若要確認您的應用程式是否還有資料可進行擷取,請檢查回應是否包含 @odata.nextLink 屬性。

var emails = graphClient
  .api('/me/messages')
  .select('subject,receivedDateTime')
  .orderby('receivedDateTime desc')
  .top(10)
  .get();

if (emails['@odata.nextLink']) {
  // more data available
}

@odata.nextLink 屬性包含完整的 URL,您可以呼叫該 URL 以取得結果的第二頁。 此 URL 會保留初始要求的所有設定,例如要擷取哪些屬性、如何排序資料,以及要取得的項目數。

若要載入下一批資料,請在 @odata.nextLink 中傳遞傳回 URL 至 graphClient

var emails = graphClient
  .api('/me/messages')
  .select('subject,receivedDateTime')
  .orderby('receivedDateTime desc')
  .top(10)
  .get();

if (emails['@odata.nextLink']) {
  var moreEmails = graphClient
    .api(emails['@odata.nextLink'])
    .get();
}

擷取結果的第二頁之後,您可以檢查結果是否有 @odata.nextLink 屬性集,以查看是否有更多可用資料。

注意

Microsoft Graph 遵循 OData 4 標準。 標準的一部分是能夠使用 $top$skip 參數 (Microsoft Graph SDK 中的 topskip 方法) 的組合來擷取特定資料頁面。 使用電子郵件時無法這樣做,因為電子郵件資料夾可能包含會影響分頁的電子郵件資料。 這就是為什麼使用電子郵件時,您應該始終使用 @odata.nextLink 值來載入更多資料。

後續步驟

讓我們擴充應用程式,讓使用者分批載入更多電子郵件。