我使用 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 链接的一些迭代过期?我可以将我的增量链接保存在我的数据库中吗? 1 年再次使用此增量链接进行同步?
- 如何避免增量链接过期?有什么生活窍门吗?
- 如果遇到这个问题我该怎么办?完全重新同步并获得新的增量链接?
- 这是错误还是功能?
最佳答案
每次同步时,都会生成一个新的同步 token 。我们将当前同步 token 与前两个同步 token 一起存储。这在我们在服务器端推进同步的情况下对我们有帮助,但在将数据传输到客户端时发生了一些事情,因此他们无法获得新的 token 值。在这种情况下,我们可以“回退”到之前的同步 token ,这样客户端就不必重新同步所有内容。但是这三个存储的 token 随着每次同步而变化——最旧的 token 被丢弃,我们前进。在你的例子中,你传递给我们一个大约有 230 代历史的增量代币。那个 token 早就不见了。
另一件需要考虑的事情是,一个“不活跃”的同步 token 会存在大约 90 天,此时我们认为它已经过时,向其注入(inject)气体并将其点燃(不是真的)。
关于microsoft-graph-api - 同步状态未找到错误 : how to fix or avoid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51933002/