我正在为使用Google Calendar API的客户端创建网站。本质上,客户需要能够输入其日历ID并在网站上填充事件。这是通过Firebase函数处理的,该函数执行对Calendar API的请求。
我尝试的第一件事是遵循Google的日历API快速入门教程。这工作了一段时间,直到他们提供的临时访问令牌过期,然后我才意识到访问令牌是临时的。
接下来,我生成了自己的OAuth2客户端ID并使用了该ID。这一直很有效,直到我开始从Google收到“匿名使用已过期”错误为止,一段时间后我才意识到这是因为密钥没有启用只读日历作用域。
在尝试启用该范围时,有人告诉我需要与Google验证我的应用程序,这可能需要数周的时间,并且要求我为我的应用程序编写服务条款和隐私权政策。这似乎有点不必要,因为它将仅从一个人的日历中读取事件,并且他已经授予我批准和访问权限。
我的下一个想法是公开日历并使用静态API密钥,但是日历是从名为Peak Pro的预订服务同步的,该服务会在日历描述中填充与会的客户的姓名,电子邮件和电话号码事件。我不能公开露面。
接下来,我被CalDAV API吸引住了,但是在与Google验证OAuth2同意屏幕方面似乎有相同的要求。
我通常不会提出这样的基本问题,但是三周后我一直找不到解决方案。 Google在这里提供我遗失的另一种选择吗?
答案 0 :(得分:1)
不幸的是,简单的答案是不,谷歌没有为此提供其他选择。
出于安全考虑,在使用G-Suite API向域外的用户提供服务时,该过程需要Google对应用程序进行验证。这纯粹是出于安全原因,因为应用程序可以读取和传递个人信息,如果没有此手动验证代码,则可以执行应用程序开发人员要求的范围之外的代码。
不过,作为一种解决方法,您可以在将事件的事件详细信息设为私有之后,使用日历设置中提供的内嵌iframe将日历导入到网页中。您的客户可以通过完成以下步骤为您提供此链接:
calendar.google.com
选择“仅查看忙/闲(隐藏详细信息)”后,匿名/公共用户可以查看的唯一信息是事件发生的时间和日历的所有者。日历中事件的所有其他信息都是隐藏的,除非查看页面的人被邀请参加该事件并登录[2]。