office365 - 如果应用程序错过通知 - SequenceNumber 跳过一个或多个该怎么办?

标签 office365 office365api office365-restapi

我现在在哪里?我已通过office365的REST API订阅了日历通知。当创建/更新/删除该日历中的任何事件时,office365 会将通知发送到我在创建此订阅时分配的应用程序端点。订阅代码就像魅力一样,通知会立即发出。

我真的想让我的代码具有容错能力,但问题来了:如果通知以非增量顺序出现,会发生什么?例如,如果有人首先创建事件然后将其删除。这些通知的顺序可以相反吗? 1. 删除事件,2. 创建事件。我在文档中找不到这个。

我对您如何在代码中处理 SequenceNumber 非常感兴趣。

这就是 documentation说:

SequenceNumber - A number in sequence for a notification, to help the client app identify if it's missing a notification.

好的,很高兴知道我是否错过了通知,但是您能告诉我在这种情况下该怎么办吗?这似乎在任何地方都很难解释。

  1. SequenceNumber 的行为方式例如它们可以按非递增顺序排列吗?
  2. 如果您错过了SequenceNumber该怎么办?

通过测试我发现,SequenceNumber 始终按增量顺序排列。但我不确定情况是否总是如此?

更重要的是,如果我的应用错过了 SequenceNumber 该怎么办?我的意思是,如果出现 1、2、3,而下一个是 5 或 6,那么我该怎么办?

另外,我不太确定 ChangeType: Missed 是否与此有关。我对此真的很困惑,所以任何帮助将不胜感激! :)

最佳答案

我测试过它永远不会跳过 SequenceNumber,但好的做法是为每个订阅构建一个通知队列,并按照 SequenceNumber 的顺序一一处理通知。

ChangeType:错过并不能说明什么。它几乎只告诉您哪些订阅错过了通知。通过日历集成,我最终检查了哪个日历对应于该 subscriptionId,然后运行完全同步来验证 Office 中是否有我们错过的任何更改。

关于office365 - 如果应用程序错过通知 - SequenceNumber 跳过一个或多个该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39320562/

相关文章:

excel - 获取文件excel的最后修改日期

outlook - 通过 Office365 API 获取按 conversationId 过滤的消息

outlook - 无法使用Office 365 REST API登录电子邮件

office365 - 如何在 OWA(电子邮件阅读模式)中添加打开加载项任务 Pane 的自定义邮件操作

api - 使用 Microsoft Graph REST API 访问 Word(.docx) 文件的内容?

powershell - 使用Powershell或批处理调用Graph API

c# - Office365 API : OAuth2 AccessTokens for app-only require that the

c# - 从 Outlook 收件箱读取邮件时,基本身份验证不再有效

office365 - 由于 401 未经授权,使用 Graph API(按应用程序)访问 Office 365 Planner 数据时出现问题

c# - 来自 .net 控制台应用程序的 Office 365 REST API 调用