Google api 使用google凭据对象获取google用户的jwt访问令牌时出现错误响应

Google api 使用google凭据对象获取google用户的jwt访问令牌时出现错误响应,google-api,jwt,access-token,google-api-client,google-workspace,Google Api,Jwt,Access Token,Google Api Client,Google Workspace,我正在尝试使用GoogleCredential和JacksonFactory库为我的gsuite域的每个用户获取jwt访问令牌 代码示例- GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(clientEm

我正在尝试使用GoogleCredential和JacksonFactory库为我的gsuite域的每个用户获取jwt访问令牌

代码示例-

GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
                .setJsonFactory(JSON_FACTORY)
                .setServiceAccountId(clientEmail)
                .setServiceAccountScopes(scopes)
                .setServiceAccountPrivateKeyFromP12File(privateKeyFile)
                .setServiceAccountUser(userEmail)
                .build();

            credential.refreshToken();
            String accessToken = credential.getAccessToken();
所有字段-clientEmail、scopes、key和userEmail既不为null也不为空

对于少数用户,我无法获得访问令牌,并且出现此错误

com.google.api.client.repackaged.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191) com.google.api.client.util.Preconditions.checkNotNull(Preconditions.java:127) com.google.api.client.json.jackson2.JacksonFactory.createJsonParser(JacksonFactory.java:96) com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:85) com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81) com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:88) com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287) com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:307) com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:269) com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489) com.hubble.hubbleEngine.policyTypes.OAuth.getJWTAccessToken(OAuth.java:815)
这只是第一次发生,我正在尝试获取访问令牌。当我再次尝试为所有用户获取访问令牌时,我能够为第一次抛出错误的用户获取访问令牌

我进行了一些调试,发现错误是由com.google.api.client.auth.oauth2.TokenRequest中的以下函数生成的

public final HttpResponse executeUnparsed() throws IOException {
// must set clientAuthentication as last execute interceptor in case it needs to sign request
HttpRequestFactory requestFactory =
    transport.createRequestFactory(new HttpRequestInitializer() {

      public void initialize(HttpRequest request) throws IOException {
        if (requestInitializer != null) {
          requestInitializer.initialize(request);
        }
        final HttpExecuteInterceptor interceptor = request.getInterceptor();
        request.setInterceptor(new HttpExecuteInterceptor() {
          public void intercept(HttpRequest request) throws IOException {
            if (interceptor != null) {
              interceptor.intercept(request);
            }
            if (clientAuthentication != null) {
              clientAuthentication.intercept(request);
            }
          }
        });
      }
    });
// make request
HttpRequest request =
    requestFactory.buildPostRequest(tokenServerUrl, new UrlEncodedContent(this));
request.setParser(new JsonObjectParser(jsonFactory));
request.setThrowExceptionOnExecuteError(false);
HttpResponse response = request.execute();
if (response.isSuccessStatusCode()) {
  return response;
}
throw TokenResponseException.from(jsonFactory, response);
}

request.execute()点击“”以获取令牌,但它正在抛出一些错误响应。因此,它抛出了最后提到的TokenResponseException。这里,response.getContent()为null,因此会发生整个null异常

有没有办法知道调用抛出了哪种错误响应。(>300或