Microsoft Graph API messages deltaで初回同期時に過去メールをスキップする方法
TypeScript
Microsoft Graph API
Outlook
知識
Microsoft Graph APIの/me/messages/deltaエンドポイントで初回同期時に過去のメールをスキップするには、receivedDateTimeフィルターを使用する。
typescript
async getMessagesDelta(
accessToken: string,
deltaLink?: string,
isInitial: boolean = false,
): Promise<any> {
const client = Client.init({
authProvider: (done) => {
done(null, accessToken);
},
});
if (!deltaLink && isInitial) {
// 初回は現在時刻以降のメールのみ取得
const now = new Date().toISOString();
const url = `/me/messages/delta?$filter=receivedDateTime ge ${now}`;
const response = await client.api(url).get();
return response;
}
const url = deltaLink || '/me/messages/delta';
const response = await client.api(url).get();
return response;
}この方法により、過去のメールを事実上スキップして新着メールのみの同期を開始できる。フィルターは初回リクエストで設定する必要があり、後続のnextLink/deltaLinkに自動的にエンコードされる。