Google calendar api 共享日历acl.insert()现在需要用户手动通过电子邮件通知添加日历

Google calendar api 共享日历acl.insert()现在需要用户手动通过电子邮件通知添加日历,google-calendar-api,Google Calendar Api,为了使用户能够在Google Calendar中查看我们的日历,我们目前在自己的服务帐户上创建了一个日历,然后使用ACL与用户共享此日历 过去,新日历将自动出现在用户帐户的“其他日历”下。他们将收到来自谷歌的电子邮件通知,其中包含“我们已自动将此日历添加到您的谷歌日历帐户。您可以随时隐藏或完全删除此日历。” 然而,突然间日历并没有出现在他们的账户上。最后,我注意到通知电子邮件现在这样写道:“在将此日历添加到其他日历后,您可以随时隐藏或完全删除它。”通过链接“添加此日历。” 只有单击此链接后,日历

为了使用户能够在Google Calendar中查看我们的日历,我们目前在自己的服务帐户上创建了一个日历,然后使用ACL与用户共享此日历

过去,新日历将自动出现在用户帐户的“其他日历”下。他们将收到来自谷歌的电子邮件通知,其中包含“我们已自动将此日历添加到您的谷歌日历帐户。您可以随时隐藏或完全删除此日历。”

然而,突然间日历并没有出现在他们的账户上。最后,我注意到通知电子邮件现在这样写道:“在将此日历添加到其他日历后,您可以随时隐藏或完全删除它。”通过链接“添加此日历。

只有单击此链接后,日历才会显示在他们的帐户上

这是谷歌突然改变的政策吗?有没有办法避免这第二步

下面是一些示例代码。我们启用和验证的范围是“../auth/calendar”、“email”、“profile”、“openid”


不幸的是,对于你关于避免第二步的问题,没有什么可以做的。即使谷歌方面的政策发生了变化,你也无法改变任何事情,因为所有的日历API都托管在他们的服务器上

一个建议是实现一个应用程序,模拟点击
添加此日历
,这将使您的问题变得稍微容易一些

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()