Google Calendar API:由于服务帐户访问角色,没有活动详细信息

问题描述 投票:0回答:1

我正在使用 Google 服务帐户向日历 API 授权我的应用程序读取日历事件数据以确定用户是否忙碌。问题是,由于服务帐户的

accessRole
是 'freeBusyReader',因此 API 不会返回
eventType
参数,而我需要该参数来处理业务逻辑。

我必须做的一件事是让用户与服务帐户共享他们的日历,我注意到在共享设置中,只有“仅查看空闲/忙碌”选项可以选择,其余的都不能。我无法选择“查看所有事件详细信息”选项,我相信该选项可以让我从 API 中查看所需的参数。

我有哪些选择可以继续前进?理想情况下,我不希望 Google 管理员在组织范围内应用任何日历共享选项,那么我可以在服务帐户上更改某些内容吗?

我实际上只需要 API 中的

eventType
参数,但我相信这是因为共享/访问角色设置的原因,我看不到它。

google-calendar-api google-apps service-accounts
1个回答
0
投票

考虑到您不希望 Google 管理员在组织范围内应用日历共享选项,并考虑到您在服务帐户的访问角色方面面临的限制,我可以在这些限制中看到两个选项:

  1. 调查服务帐户委托

    查看服务帐户的域范围委派是否可行。这是 Google Workspace 中的一项功能,允许服务帐号模拟您网域中的用户。

    这样,服务帐户就可以像用户一样访问日历详细信息,从而无需单独的日历共享设置。但是,这仍然可能需要一定程度的管理设置,但它比在组织范围内更改共享选项更具针对性。

  2. 或者:在用户同意的情况下使用 OAuth 2.0

    实施OAuth 2.0 流程以获得个人用户同意仍然是另一种选择。该方法不依赖于服务帐户或管理级别的更改。

    每个用户都会授予您的应用程序访问其日历详细信息的权限,包括

    eventType
    参数。这种方法更以用户为中心。
    请参阅“使用 OAuth 2.0 访问 Google API ”:

    • 使用 Google 文档在您的应用程序中设置 OAuth 2.0。
    • 将用户重定向到 Google 的 OAuth 2.0 服务器以获得同意。
    • 处理响应并用代码交换令牌。
    • 使用访问令牌调用 Google Calendar API 以访问 eventType 参数和其他详细信息。
© www.soinside.com 2019 - 2024. All rights reserved.