Google Calendar API不返回共享日历

问题描述 投票:-2回答:2

初始情况:

  • 在我们的一项服务中,我们使用服务帐户来调用Google Calendar API。
  • 用户可以通过其技术电子邮件地址与此技术帐户共享日历(@ .iam.gserviceaccount.com)。
  • 由于日历是共享的,我们可以通过API(CalendarList / List:https://developers.google.com/calendar/v3/reference/calendarList/list)进行查询
  • 几年来一切都很好,没有问题。

当前问题:

  • 正如我们最近发现的那样,不再通过API调用返回新共享的日历。过去共享的日历仍会返回(!)
  • 我们知道pageToken并对其进行处理-这不是问题。如果是一个(测试)帐户,当前仅共享8个日历,我们将无法再获得更多。
  • 后端通话期间没有错误/警告
  • Google开发者控制台上没有错误/警告/配额问题

我们尚未收到Google关于Calendar API更改或帐户限制的任何警告/警报。另外,我还没有发现任何有关Google日历的已知问题/停机。

可能是什么问题?

我应该向Google报告吗?如果是,究竟如何?我所能找到的只是一个“ Google Cloud Platform免费试用疑难解答”,其中(除了使用stackoverflow的建议外),我所能做的“特定问题和技术支持”就是“开始聊天”,到内部Google网站(moma)。还有什么我可以尝试的吗?

任何帮助将不胜感激!

UPDATE:官方文档中有间接跟踪/提示,表明Google已更改(自动)接受共享日历的行为-比较“共享现有日历”部分的当前版本和2019年8月版本:

google-api google-calendar-api google-oauth service-accounts
2个回答
1
投票

最近有变化

与用户/服务帐户共享日历后,该用户/服务帐户必须通过将共享日历添加到他的日历列表中来“接受”共享。

[这可以通过单击“添加此日历”从UI中完成(对于用户而言,也可以使用方法CalendarList: insert以编程方式(对用户和服务帐户均适用)。


0
投票

CalendarList.List返回用户日历列表中的日历。

这不一定是用户可以访问的所有日历。用户日历列表显示在Google日历网络应用的左下角

enter image description here

当授予用户访问新日历的权限时,他们接受通过电子邮件进行的访问。当他们这样做时,通常将日历添加到他们的calendarlist.list中。对于服务帐户,这不会发生,因为它无法检查电子邮件并接受仅具有访问权限的邀请。

如果要将日历添加到服务帐户日历列表中,则需要通过服务帐户插入它们。使用calendarlist.insert

[不确定您为什么认为过去有效,我已经使用此api多年了,因此从来没有因为将calenadarlist与服务帐户一起使用而感到困扰。

  1. [用户与服务帐户2的电子邮件共享他/她的日历。执行CalendarList / List,我们希望返回所有日历,包括在步骤1中共享的日历。情况是,API调用仅返回”较早共享”的日历。 ,但不是我们现在分享的那个。希望我能澄清一下-如果没有,请提出具体问题,谢谢!

没有任何方法可以返回用户有权访问的所有日历。 TBH的反应是巨大的,考虑到所有公开的日历都将被归还。

使用服务帐户的提示。

服务帐户并非旨在让您分配给用户,让他们授予其访问日历的权限。服务帐户旨在使开发人员拥有一个静态日历,您可以在应用程序中使用该日历并将数据保存到其中。

如果要访问用户日历,那么当他们离线时需要访问他们的数据时,应该使用Oauth2并保存刷新令牌。

报告问题

[最近在服务帐户和Google日历上发生了很多变化,我在过去的几个月中报告了我自己的服务问题issue forum,建议您将其作为问题提交。将其链接到此处,我将查看是否可以找到该团队的联系人来对该问题执行ping操作。

© www.soinside.com 2019 - 2024. All rights reserved.