基本上我已经注意到,当用户的主要电子邮件在他们的谷歌帐户上更新时,他们的日历ID也会改变(例如ID将从john@company.com
更改为john_new@company.com
)。
这是一个问题,因为我工作的应用程序依赖于日历ID作为用户的稳定标识符。例如,假设公司的用户A通过我的应用程序将一个事件安排到他们的日历中。我们将在自己的数据库中保存与该事件相关的元数据以及用户A的日历ID,以表示该事件被安排到该日历中。这很重要,因为我们使用此信息来确保只有对该日历ID具有写访问权限的用户才能从我们的应用程序编辑此事件(对于安全目的很重要)。
假设用户A更新了他们的主电子邮件,这导致他们的日历ID也发生了变化。现在,当我查询CalendarList端点以获取用户a的日历列表时,我得到了新的日历ID,这使得我的应用程序认为用户a不应该有权编辑他们刚刚安排的事件,因为该事件被安排到用户a不再具有访问权限的日历ID。
有办法解决这样的问题吗?我找不到返回用户A的"存档"的端点。日历ID和新的日历ID。更深入地说,我不明白为什么他们的日历ID会改变,因为感觉ID应该是稳定的标识符…
在这种情况下,通过测试和使用日历API和Google Workspace,Calendar ID
将始终是email address of the user account it’s associated with
,这是一个事实。我希望有实际的文档,但这只是从测试,我已经证实了这一点。还有其他线程解释相同,在这种情况下,你应该修改你的应用程序的方式,CalendarID
不是基于一个稳定的ID,因为这取决于你的电子邮件地址。