批次載入使用者的電子郵件
您建立 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 中的 top
和 skip
方法) 的組合來擷取特定資料頁面。 使用電子郵件時無法這樣做,因為電子郵件資料夾可能包含會影響分頁的電子郵件資料。 這就是為什麼使用電子郵件時,您應該始終使用 @odata.nextLink
值來載入更多資料。
後續步驟
讓我們擴充應用程式,讓使用者分批載入更多電子郵件。