Google api 访问驱动器API';时是否需要显式刷新令牌;s通过服务帐户使用谷歌图书馆

Google api 访问驱动器API';时是否需要显式刷新令牌;s通过服务帐户使用谷歌图书馆,google-api,google-drive-api,google-oauth,service-accounts,drive,Google Api,Google Drive Api,Google Oauth,Service Accounts,Drive,我有一个用java编写的应用程序,通过服务帐户使用GoogleSDK for drive API将文件上传到GoogleDrive。我想了解,我真的需要显式处理访问令牌过期问题吗?因为据我所知,SDK本身会检查并刷新令牌(如果令牌过期)。 我可能错了,但我没有找到任何关于服务帐户令牌刷新的文档。 关于这一点的任何解释都会非常有用。 如果有帮助的话,我已经附上了谷歌授权的代码 public void init() throws Exception { // consider g

我有一个用java编写的应用程序,通过服务帐户使用GoogleSDK for drive API将文件上传到GoogleDrive。我想了解,我真的需要显式处理访问令牌过期问题吗?因为据我所知,SDK本身会检查并刷新令牌(如果令牌过期)。 我可能错了,但我没有找到任何关于服务帐户令牌刷新的文档。 关于这一点的任何解释都会非常有用。 如果有帮助的话,我已经附上了谷歌授权的代码

  public void init() throws Exception {
        // consider gAuth is a google_scret.json file
        gAuth = SecretsUtil.getSecret("auth");
        credentials = GoogleCredentials.fromStream(new ByteArrayInputStream(gAuth.getBytes()))
                .createScoped(DriveScopes.all());
        requestInitializer = new HttpCredentialsAdapter(credentials);
        log.info("Google Auth Service Initialized");
        
    }

    public HttpRequestInitializer getCredential() {
        return requestInitializer;
    }
答复: 不用了,这是为你处理的

更多信息: 从文件中:

服务帐户使用不需要人工授权的OAuth 2.0流。相反,它使用一个只有您的应用程序才能访问的密钥文件

这个想法是服务帐户将继续运行,做它需要做的事情,而不需要任何人的交互,因此客户端库将为您处理这个问题

Google OAuth 2.0授权服务器发布的访问令牌在发布一小时后过期。当访问令牌过期时,应用程序应生成另一个JWT,对其进行签名,并请求另一个访问令牌

我希望这对你有帮助

参考资料: