我使用 Microsoft Graph API 增量查询定期下载一些信息(消息、联系人、事件)。但有时我会收到此错误:
{
"error" :
{
"code" : "SyncStateNotFound",
"innerError" :
{
"date" : "2018-06-01T06:31:24",
"request-id" : "47e918a9-ce5b-42b4-8a86-12b96c93121a"
},
"message" : "The sync state generation is not found; generation=605;[highest=841][841][839][840]."
}
}
我无法为您提供复制步骤,因为我不知道如何复制它。生产环境有时会出现这种情况。
所以我有一些问题:
- Microsoft Graph API 中的生成是什么?有相关的可用文档吗?我在互联网上没有找到任何有用的东西。
- 为什么 Delta 链接会过期? Delta 链接会随着时间或使用 Delta 链接的某些迭代而过期吗?我可以将我的增量链接保存在我的数据库和例如1 年后再使用此 Delta 链接进行同步吗?
- 如何避免增量链接过期?有什么生活妙招吗?
- 如果我遇到这个问题我该怎么办?完全重新同步并获得新的增量链接?
- 这是错误还是功能?
每次同步时,都会生成一个新的同步令牌。我们将当前的同步令牌与前两个同步令牌一起存储。这有助于我们在服务器端推进同步,但在将数据传输到客户端时发生某些情况,因此他们无法获得新的令牌值。在这种情况下,我们可以“回退”到以前的同步令牌,以便客户端不必重新同步所有内容。但这三个存储的令牌会随着每次同步而变化 - 最旧的令牌会被丢弃,我们会前进。在您的例子中,您向我们传递了一个大约有 230 代历史的 Delta 代币。那个令牌早已消失了。
另一件需要考虑的事情是,“不活动”的同步令牌将保留大约 90 天,此时我们认为它已经过时,向其倒入气体并将其点燃(不是真的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)