为了使我们的用户能够在Google日历中查看我们的日历,我们目前在自己的服务帐户上创建了一个日历,然后使用ACL与该用户共享此日历。
过去,新日历将自动显示在用户帐户的“其他日历”下。他们将收到Google的电子邮件通知,其中包含“ 我们已自动将此日历添加到您的Google日历帐户。您可以随时隐藏或完全删除此日历。”
但是,日历突然没有出现在他们的帐户中。最终,我注意到通知电子邮件现在显示以下内容:“ 将日历添加到其他日历后,您可以随时隐藏或完全删除它。”带有链接“ 添加此日历。”
仅在单击此链接后,日历才会出现在他们的帐户中。
这是Google突然改变的政策吗?有没有办法避免第二步?
这里是一些示例代码。我们启用并验证的范围是“ ... / auth / calendar”,“电子邮件”,“配置文件”,“ openid”。
calendar = service.calendars().insert(body={
'description': description,
'summary': summary,
'timeZone': timezone,
}).execute()
service.acl().insert(
calendarId = calendar['id'],
body={
'role': 'reader',
'scope': {
'type': 'user',
'value': user_email,
}
}).execute()
[不幸的是,关于避免第二步的问题,您无法做很多事情。即使Google方面做出了政策更改,您也无法更改任何内容,因为所有Calendar API都托管在其服务器上。
建议是实现一个模拟Add this calendar
点击的应用程序,这会使您的问题更容易一些。