Google api 谷歌日历API don';t返回共享日历
初步情况:Google api 谷歌日历API don';t返回共享日历,google-api,google-calendar-api,google-oauth,service-accounts,Google Api,Google Calendar Api,Google Oauth,Service Accounts,初步情况: 在我们的一项服务中,我们使用一个服务帐户来调用Google日历API 用户可以通过其技术电子邮件地址与此技术帐户共享其日历 (@.iam.gserviceaccount.com) 由于日历是共享的,我们可以通过API查询它们(CalendarList/List:) 这一切在几年内都运转良好,没有任何问题 当前问题: 正如我们最近发现的,新共享的日历不再通过API调用返回。过去共享的日历仍会返回(!) 我们知道PageToken并处理它们——这不会是一个问题。对于一个(测试)帐户
- 在我们的一项服务中,我们使用一个服务帐户来调用Google日历API
- 用户可以通过其技术电子邮件地址与此技术帐户共享其日历 (@.iam.gserviceaccount.com)
- 由于日历是共享的,我们可以通过API查询它们(CalendarList/List:)
- 这一切在几年内都运转良好,没有任何问题
- 正如我们最近发现的,新共享的日历不再通过API调用返回。过去共享的日历仍会返回(!)
- 我们知道PageToken并处理它们——这不会是一个问题。对于一个(测试)帐户,当前仅共享8个日历,我们无法获得更多
- 在后端调用期间没有错误/警告
- Google开发者控制台上没有错误/警告/配额问题
- “由于最近的行为变化,任何帐户都必须明确地“接受”与他们共享的日历。”
- 状态:无法修复(预期行为)
这可以通过单击“添加此日历”从UI完成(对于用户而言),也可以通过该方法以编程方式完成(适用于用户和服务帐户)。还有一个解决方案 1) 将日历添加到您的Google帐户 2) 使用服务帐户电子邮件Id共享日历 3) 在新创建的日历中转到设置和共享,找到日历Id 4) 请点击此链接- 这是用于在服务帐户中添加现有日历的示例PHP代码
$calendarListEntry = new Google_Service_Calendar_CalendarListEntry();
$calendarListEntry->setId("calendarId");
$createdCalendarListEntry = $service->calendarList->insert($calendarListEntry);
echo $createdCalendarListEntry->getSummary();
5) 现在调用Calendar List API,您将在服务帐户日历列表中找到添加的日历id请证明此声明“正如我们最近发现的,新共享的日历不再通过API调用返回。过去共享的日历仍然会返回”请准确解释你的问题是什么,因为它是目前写的很难理解你的问题。好吧,我试着更清楚地表达。复制步骤:1。用户将其日历与服务帐户2的电子邮件共享。执行CalendarList/List时,我们希望返回所有日历,包括步骤1中共享的日历。情况是,API调用只返回“早期共享”日历,而不是我们现在共享的日历。我希望我澄清了这些问题——如果没有,请提出具体问题,谢谢!嗯,你