【问题标题】:Outlook calendar event id's are unique across tenant?Outlook 日历事件 ID 在租户中是唯一的吗?
【发布时间】:2021-01-20 09:02:13
【问题描述】:

我正在将多个租户的日历事件数据存储在一个数据库中。如果日历事件 ID 在租户中是唯一的,我将使用它作为主键来存储唯一事件

使用Graph API events delta query获取数据

提前谢谢..

【问题讨论】:

  • 从 Exchange/Outlook 的角度(而不是 SQL 方面)谈论...考虑一个场景,其中事件从一个邮箱存储移动到另一个邮箱存储,然后您正在使用的所有 ID 可能由 Outlook/Exchange 重新计算 - 因此旧值可能会丢失,它们可能具有最新值。为了克服这个问题,我的建议是创建一个自定义 MAPI 属性标记,随意使用它。

标签: microsoft-graph-api azure-ad-graph-api microsoft-graph-calendar outlook-calendar outlook-api


【解决方案1】:

我的建议是您最好使用其他键作为主键,例如时间戳,例如 20210122125959333。

根据您的问题,我在 Google 上寻求帮助,根据 this document,似乎会有 2 个相同的事件 ID。但是基于this one,似乎事件ID是唯一的。

所以我做了一些测试。我用create event api来创建日历事件,用同样的参数来测试会不会出现同样的id,这就是我的结论。

首先,如果我在this document中使用了示例参数(我的url是:https://graph.microsoft.com/v1.0/me/calendar/events),多次执行该api后,它总是会返回类似的响应但事件ID相同(你可以看到截图中的详细信息),但是当我通过api查询事件时,我只能得到一个事件。

然后我将“transactionId”设置为“”并在参数json中更改事件的主题(因为当我只是更改主题的值时,它会返回一个错误描述我不能使用相同的transactionId),之后执行几次,即使使用相同的参数,我也可以获得不同的事件ID。

所以我的建议是你不应该使用事件 id 作为主键,除非你的系统不关心上面提到的返回相同 id 的操作,并准备设置一个好的验证以避免出现相同的事件 id。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 2022-08-05
    • 1970-01-01
    • 2022-08-10
    相关资源
    最近更新 更多