Calendar 使用服务帐户访问Google日历API忙/闲

Calendar 使用服务帐户访问Google日历API忙/闲,calendar,google-api,google-calendar-api,Calendar,Google Api,Google Calendar Api,我们已经构建了一个应用程序,该应用程序正试图使用服务帐户访问谷歌日历API。我们自己管理应用程序,但我们尝试访问的日历位于单独的GSuite帐户上。我们已经让GSuite管理员按照步骤允许基于客户端ID和“”的授权范围访问我们的应用程序 现在,当使用服务帐户尝试访问用户日历数据时,我对如何正确格式化请求感到有点困惑。具体地说,如果我没有包含“sub”参数,那么请求的作用就是我被授予了一个令牌,并且我能够继续发出访问日历的后续请求。然而,在随后的请求中,我返回了用户日历上的错误,指示找不到,即我没

我们已经构建了一个应用程序,该应用程序正试图使用服务帐户访问谷歌日历API。我们自己管理应用程序,但我们尝试访问的日历位于单独的GSuite帐户上。我们已经让GSuite管理员按照步骤允许基于客户端ID和“”的授权范围访问我们的应用程序

现在,当使用服务帐户尝试访问用户日历数据时,我对如何正确格式化请求感到有点困惑。具体地说,如果我没有包含“sub”参数,那么请求的作用就是我被授予了一个令牌,并且我能够继续发出访问日历的后续请求。然而,在随后的请求中,我返回了用户日历上的错误,指示找不到,即我没有访问权限。请求如下:

String jwtClaimset = '{'+
                          '"iss":"xxxxx@service-account.com",'+
                          '"sub":"xxxxxx@xxxx.com",'+
                          '"scope":"https://www.googleapis.com/auth/calendar.readonly",'+
                          '"aud":"https://www.googleapis.com/oauth2/v4/token",'+
                          '"exp":'+expTime+','+
                          '"iat":'+requestTime+
                            '}';
但是,如果我将GSuite帐户中的特定电子邮件/用户名包含在“模拟”中,我根本无法请求令牌,我将出现以下错误:

“错误描述”:“客户端无权使用此方法检索访问令牌。”


因此,我的问题是,我是否需要子参数来访问GSuite中的任何用户日历?如果需要,您知道出现此错误的原因吗?

我不知道发生了什么,可能只是GSuite权限/访问权需要时间才能更新,但现在这已经起作用了


请注意,我们正在使用子参数及其工作方式(正如我们怀疑需要的那样)。

Hi George。我试图在NodeJs中编写一些api,这些api可以列出用户的事件并在他们的日历中创建事件。我们组织的邮件帐户和日历在gsuite上。我已经尝试过使用基于JWT的身份验证的googleapis nodejs包,但它没有为主要用户显示任何事件。不确定服务帐户凭据将如何模拟其他用户帐户。你能指导我完成这个过程吗?