GoogleCredentialsBuilder OAuth 2.0
GoogleCredentialsBuilder OAuth 2.0
我们目前有一个批处理作业,每 50 分钟左右使用刷新令牌刷新访问令牌。
这就是我们目前构建 GoogleCredentials
对象以构建 gmail api 的方式。
Credential cred = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setClientSecrets(clientId, clientSecret)
.build()
.setAccessToken(accessToken)
.setRefreshToken(refreshToken);
return new Gmail.Builder(httpTransport, jsonFactory, cred).setApplicationName("SalesforceIQ").build();
我看不出在 GoogleCredentials
中设置 refreshToken
有什么好处。我能够成功授权自己并 return 仅使用访问令牌即可正确响应。
accessToken在无效时(在API请求期间)由google刷新,设置刷新令牌的好处是?如果是这样,有没有办法从 google 取回这个新的访问令牌(以便我们可以将它存储在我们的数据库中)?
查看文档页面Using OAuth 2.0 with the Google API Client Library for Java - Data store
You may use DataStoreCredentialRefreshListener and set it for the
credential using
GoogleCredential.Builder.addRefreshListener(CredentialRefreshListener).
当库自动刷新访问令牌并将新令牌存储在数据存储中时,将调用刷新侦听器。
这样就不需要设置刷新令牌了。您甚至可能会质疑自动刷新令牌的批处理是否有必要。
我们目前有一个批处理作业,每 50 分钟左右使用刷新令牌刷新访问令牌。
这就是我们目前构建 GoogleCredentials
对象以构建 gmail api 的方式。
Credential cred = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setClientSecrets(clientId, clientSecret)
.build()
.setAccessToken(accessToken)
.setRefreshToken(refreshToken);
return new Gmail.Builder(httpTransport, jsonFactory, cred).setApplicationName("SalesforceIQ").build();
我看不出在 GoogleCredentials
中设置 refreshToken
有什么好处。我能够成功授权自己并 return 仅使用访问令牌即可正确响应。
accessToken在无效时(在API请求期间)由google刷新,设置刷新令牌的好处是?如果是这样,有没有办法从 google 取回这个新的访问令牌(以便我们可以将它存储在我们的数据库中)?
查看文档页面Using OAuth 2.0 with the Google API Client Library for Java - Data store
You may use DataStoreCredentialRefreshListener and set it for the credential using GoogleCredential.Builder.addRefreshListener(CredentialRefreshListener).
当库自动刷新访问令牌并将新令牌存储在数据存储中时,将调用刷新侦听器。
这样就不需要设置刷新令牌了。您甚至可能会质疑自动刷新令牌的批处理是否有必要。