问题描述
我正在尝试使用来自谷歌云的渠道服务 API
从文档中,https://github.com/googleapis/google-cloud-java
如果您已经拥有 OAuth2 访问令牌,则可以使用它进行身份验证(请注意,在这种情况下,访问令牌不会自动刷新):
Credentials credentials = GoogleCredentials.create(new Accesstoken(accesstoken,expirationTime));
Storage storage = StorageOptions.newBuilder()
.setCredentials(credentials)
.build()
.getService();
or:
Credentials credentials = GoogleCredentials.create(new Accesstoken(accesstoken,expirationTime));
CloudTasksSettings cloudTasksSettings = CloudTasksSettings.newBuilder()
.setCredentialProvider(FixedCredentialsProvider.create(credentials))
.build();
CloudTasksClient cloudTasksClient = CloudTasksClient.create(cloudTasksSettings);
Credentials credentials = GoogleCredentials.create(new Accesstoken("<<access token>>",new Date(1619003238)));
CloudChannelServiceSettings serviceSettings =
CloudChannelServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credentials))
.build();
client = CloudChannelServiceClient.create(serviceSettings);
client.getCustomer(name);
我在这里得到的错误是
com.google.api.gax.rpc.UnauthenticatedException: io.grpc.StatusRuntimeException: UNAUTHENTICATED: 计算凭据元数据失败
java.lang.IllegalStateException:OAuth2Credentials 实例不支持刷新访问令牌。应使用具有新访问令牌的实例,或支持刷新的派生类型。
我在这里错过了什么。 我知道还有其他方法可以处理服务帐户本身,但我的要求是 - 必须使用访问令牌进行身份验证。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)