我正在使用 Google 服务帐户向日历 API 授权我的应用程序读取日历事件数据以确定用户是否忙碌。问题是,由于服务帐户的
accessRole
是 'freeBusyReader',因此 API 不会返回 eventType
参数,而我需要该参数来处理业务逻辑。
我必须做的一件事是让用户与服务帐户共享他们的日历,我注意到在共享设置中,只有“仅查看空闲/忙碌”选项可以选择,其余的都不能。我无法选择“查看所有事件详细信息”选项,我相信该选项可以让我从 API 中查看所需的参数。
我有哪些选择可以继续前进?理想情况下,我不希望 Google 管理员在组织范围内应用任何日历共享选项,那么我可以在服务帐户上更改某些内容吗?
我实际上只需要 API 中的
eventType
参数,但我相信这是因为共享/访问角色设置的原因,我看不到它。
考虑到您不希望 Google 管理员在组织范围内应用日历共享选项,并考虑到您在服务帐户的访问角色方面面临的限制,我可以在这些限制中看到两个选项:
调查服务帐户委托
查看服务帐户的域范围委派是否可行。这是 Google Workspace 中的一项功能,允许服务帐号模拟您网域中的用户。
这样,服务帐户就可以像用户一样访问日历详细信息,从而无需单独的日历共享设置。但是,这仍然可能需要一定程度的管理设置,但它比在组织范围内更改共享选项更具针对性。
或者:在用户同意的情况下使用 OAuth 2.0
实施OAuth 2.0 流程以获得个人用户同意仍然是另一种选择。该方法不依赖于服务帐户或管理级别的更改。
每个用户都会授予您的应用程序访问其日历详细信息的权限,包括
eventType
参数。这种方法更以用户为中心。