在本地测试环境中使用Microsoft Graph API,更改通知不会像在生产环境中那样立即推送到您的应用程序。有时,您可能需要手动触发通知以便您的应用程序更新数据。为了模拟生产环境中更改通知的实时性,您可以使用Microsoft Graph Delta Query API执行轮询,并定期检查任何更改。
以下是使用Microsoft Graph Delta Query API进行轮询的代码示例:
const client = MicrosoftGraph.Client.init({
authProvider: (done) => {
done(null, accessToken);
},
});
let deltaLink = null;
const interval = setInterval(() => {
client.api('/me/messages/delta')
.header('Prefer', 'odata.maxpagesize=50')
.header('Prefer', deltaLink ? `odata.deltaLink=${deltaLink}` : null)
.get((err, res) => {
if (err) {
clearInterval(interval);
console.error(err);
} else {
// handle changes
deltaLink = res["@odata.deltaLink"];
}
});
}, 10000); // check for changes every 10 seconds
此示例在每10秒钟内轮询收件箱中的新邮件,以检查是否存在任何更改。如果存在任何更改,则可以执行任何必要的操作(例如更新数据)并存储新的deltaLink,以便下一次轮询使用。