【发布时间】:2018-03-12 13:15:37
【问题描述】:
开发一个应用程序,申请人可以通过第三方服务安排与我们团队成员的面试。我们会定期向第三方进行 API 调用以获取任何最近的更改,生成一个 ICS 文件,然后将该文件通过电子邮件发送给我们的团队成员,以便他们可以将其存储在他们的 Google 日历中。
开始:VCALENDAR 版本:2.0 产品:-//Google Inc//Google 日历 70.9054//EN CALSCALE:公历 方法:请求 开始:事件 DTSTART:20171001T180000Z DTEND:20171001T190000Z 摘要:示例事件 UID:5179167a74d55b6fbaf6193026af14de@example.io DTSTAMP:20171001T023000Z 组织者:noreply@example.io 序列:0 结束:事件 结束:VCALENDAR我遇到的问题是,当团队成员单击 Google Mail 生成的“添加到日历”链接时。它会忽略我生成的 UID,5179167a74d55b6fbaf6193026af14de@example.io,并创建自己的 UID:20d19q1acurfub15pe94hb1b7s@google.com。
因此,当对事件进行更新时,UID 与 Google 存储的不同,因此它会创建一个全新的事件,而不是更新现有事件。在下面的示例中,事件提前了 1 小时:
开始:VCALENDAR 版本:2.0 产品:-//Google Inc//Google 日历 70.9054//EN CALSCALE:公历 方法:请求 开始:事件 DTSTART:20171001T190000Z DTEND:20171001T200000Z 摘要:示例事件 UID:5179167a74d55b6fbaf6193026af14de@example.io DTSTAMP:20171001T023224Z 组织者:noreply@example.io 序列:1 结束:事件 结束:VCALENDAR所以现在有两个事件用于同一采访,使用两个不同的 xxx@google.com UID。
我发现,如果我直接导入 ICS 文件,而不是使用“添加到日历”链接,则 UID 会保留为最初创建的状态,并且更新/取消会按预期工作。由于在 Google 日历中导入事件的过程不是最简单的工作流程,而且我们期待的大量事件,我希望保留“添加到日历”方法。
关于我在这里做错了什么有什么建议吗?
【问题讨论】:
标签: gmail google-calendar-api icalendar