Google 日历和 Oauth2 工作流程令人困惑

Google calendar and Oauth2 workflow is confusing

我有一个供客户使用的 Web 应用程序,它显示一个日历供用户单击并安排约会。他的日历需要 24/7 全天候连接。没有用户需要登录或使用 Oauth。用户只需 select 一个日期和时间,就可以创建事件。就获取日历和发送事件而言,我一切正常。问题在于令牌以及在这种情况下对内部与外部的理解。

问题:

1.When 阅读文档,我很难理解这是一个内部应用程序还是外部应用程序。只有内部客户需要登录才能提供日历。但是“设置事件”的人是用户。

2.The 令牌在 7 天后过期。根据他们的文档“刷新令牌在被授予后可能会停止工作,原因可能是:......应用程序的状态为 'Testing' 并且同意屏幕配置为外部用户类型,导致令牌在 7天”。他们在本节中没有提供任何关于它是否超出 'Testing',这是否会继续成为问题的信息。

问题:

当涉及到同意屏幕时,我在这里做什么部署?我部署,使用他的帐户登录一次,然后一遍又一遍地刷新令牌?或者一旦它不在 'Testing' 我就不用担心这个了?

如果这是我需要做的,当前刷新令牌将在 7 天内过期。我是否只在时间即将到期后编写一个循环以发送另一个令牌?

或者我一直以来都在使用错误的方法,这个应用程序需要一个服务帐户而不是使用 Oauth?

1.When reading the docs, I find it hard to understand if this is an internal or external app. Only the internal client needs to sign on to provide the calendar. But the people who are "setting the events" are the users.

内部表示 google 工作区。仅在该域内。因此,您可以拥有一个仅适用于您工作区域内的用户的内部应用程序,它不适用于标准的 gmail 用户。

2.The token expires after 7days. Per their docs "Refresh tokens may stop working after they are granted, either because: ... The application has a status of 'Testing' and the consent screen is configured for an external user type, causing the token to expire in 7 days". They provide nothing in this section on if its out of 'Testing', if this will continue to be a problem or not.

只要将其设置为生产环境,您的访问令牌就可以使用超过 7 天。

When it comes to the consent screen, what do I do here for deployment? I deploy, log on once with his account and then work on refreshing the tokens over and over? Or once its not in 'Testing' I wont have to worry about this?

您需要再次授权该应用才能获得新的刷新令牌。基本每周一次。

If that is what I need to do, the current refresh token expires within 7days. Do I just write a loop after that time is near expiring to send for another token?

这是一个手动过程,用户需要登录 google 帐户并再次授权该应用。

Or have I been doing the wrong method this whole time and this app needs a service account and not use Oauth?

Google 日历仅在与 Google 工作区帐户一起使用时才支持服务帐户。如果这是一个工作区帐户,那么是的,您应该更容易地使用服务帐户授权。