ユーザーアイコン

mizuko

約1か月前

0
0

Microsoft Graph API messages deltaで初回同期時に過去メールをスキップする方法

TypeScript
Microsoft Graph API
Outlook

Microsoft Graph APIの/me/messages/deltaエンドポイントで初回同期時に過去のメールをスキップするには、receivedDateTimeフィルターを使用する。

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に自動的にエンコードされる。