使用访问令牌通过 Google Cloud API 进行身份验证

问题描述

我正在尝试使用来自谷歌云的渠道服务 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 (将#修改为@)