我使用的是Office 365 API的V2 DLL来执行日历操作。 我正在保存默认日历的ID,以便对其执行操作。
从过去的两年开始,我的工作正常,但最近一个月后,当我尝试从我的帐户中提取日历时 - 只是为了检查日历是否适用于我正在尝试使用的日历 - 日历已获取的ID与从O365 API
获取的日历ID不同已保存的日历ID - AQMkADc5NDI0NjFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX8jvkC_BGp2m1nqTgcABqRbG9B8nEivpWgOOBcJGwAAAgEGAAAABqRbG9B8nEivpWgOOBcJGwABH-QZPwAAAA==
新回复 -
[{
"IsBooking": false,
"IsAdditional": false,
"CalendarName": "Calendar",
"CalendarId": "AQMkADc5NDI0NjFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX8jvkC_BGp2m1nqTgcABqRbG9B8nEivpWgOOBcJGwAAAgEGAAAABqRbG9B8nEivpWgOOBcJGwABHKkz6wAAAA==",
"Selected": false,
"IsDefault": true,
"HasWriteAccess": true,
"IsFreeBusy": true,
"EWS_URL": null,
"CalendarColour": "#5D61DF",
"TimeZoneId": null
}]
但是,更改不是永久性的,并且在一天左右之后,再次尝试时,日历ID将更改回db中保存的相同ID作为默认日历ID。
日历的ID是日历的唯一标识符。但是在许多情况下,它的价值会发生变化。我们有什么方法可以使用changeKey识别相同的日历吗?知道我们如何使用changeKey属性吗?
我发现它也很奇怪,但只有最后30-35个字符更改为日历ID。加密算法可能有问题。 请建议。
答案 0 :(得分:1)
我正在和这支球队一起回来。文件夹的ID永远不会改变。它基于商店中文件夹的PR_ENTRYID,它在邮箱中是不可变的。我不确定他们在REST中的id中有什么额外的好处 - 它确实会出现一些串联。
至于更改密钥,它与id没有直接关系,所以实际上没有办法从更改密钥转换为id。这似乎只是我们身边的一个错误。但是,当然,只要文件夹发生变化,更改键就会发生变化,并且是一个不透明的blob(即使是OData和EWS层的我们)。
有趣的是,您还可以使用提取请求PR_ENTRYID扩展属性,您应该看到底层ID始终相同。但这不会解决除了未来你对幕后发生的事情的理解。
当我收到他们的回复时,我会回复。