Office 365默认日历的ID会自动更改

时间:2017-01-05 06:10:54

标签: office365 office365api outlook-restapi office365-restapi

我使用的是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属性吗? https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar#CalendarResource

我发现它也很奇怪,但只有最后30-35个字符更改为日历ID。加密算法可能有问题。 请建议。

1 个答案:

答案 0 :(得分:1)

我正在和这支球队一起回来。文件夹的ID永远不会改变。它基于商店中文件夹的PR_ENTRYID,它在邮箱中是不可变的。我不确定他们在REST中的id中有什么额外的好处 - 它确实会出现一些串联。

至于更改密钥,它与id没有直接关系,所以实际上没有办法从更改密钥转换为id。这似乎只是我们身边的一个错误。但是,当然,只要文件夹发生变化,更改键就会发生变化,并且是一个不透明的blob(即使是OData和EWS层的我们)。

有趣的是,您还可以使用提取请求PR_ENTRYID扩展属性,您应该看到底层ID始终相同。但这不会解决除了未来你对幕后发生的事情的理解。

当我收到他们的回复时,我会回复。