首页 文章

使用服务帐户访问Google Calendar API FreeBusy

提问于
浏览
1

我们构建了一个试图使用服务帐户访问Google Calendar API的应用程序 . 我们自己管理应用程序,但我们尝试访问的日历位于单独的GSuite帐户中 . 我们已经让GSuite管理员按照步骤here来允许基于客户端ID和“https://www.googleapis.com/auth/calendar.readonly”的身份验证范围访问我们的应用程序 .

现在,当使用服务帐户尝试访问用户日历数据时,我对如何正确格式化请求感到困惑 . 具体来说,如果我不包含“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帐户中的特定电子邮件/用户名包含在“模拟”中,我根本无法请求令牌,我会收到以下错误:

“error_description”:“客户端未经授权使用此方法检索访问令牌 . ”

所以我的问题是,我是否需要使用sub参数来访问GSuite中的任何用户日历?如果是这样,您是否知道为什么会出现该错误?

1 回答

  • 2

    我不知道发生了什么可能只是花了时间来GSuite权限/访问更新,但现在这是有效的 .

    需要注意的是,我们正在使用子参数及其工作(我们怀疑我们需要) .

相关问题