gpt4 book ai didi

java - Google Cloud Storage 和服务帐户出现 invalid_grant 错误

转载 作者:搜寻专家 更新时间:2023-11-01 03:57:31 25 4
gpt4 key购买 nike

当我尝试使用服务帐户访问 Google Cloud Storage API 时,我收到了一个 invalid_grant 错误。我无法弄清楚以下代码有什么问题。任何的想法 ?这是我使用 Google Storage API 的第一个应用程序。任何帮助将不胜感激。

源代码

public static void main(String[] args) throws Exception {
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();

List<String> scopes = new ArrayList<String>();
scopes.add(StorageScopes.DEVSTORAGE_FULL_CONTROL);

Credential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId("XXXX")
.setServiceAccountPrivateKeyFromP12File(new File("key.p12"))
.setServiceAccountScopes(scopes).build();

Storage storage = new Storage.Builder(httpTransport, jsonFactory,
credential).setApplicationName("test")
.build();

List<String> list = new ArrayList<String>();
List<Bucket> buckets = storage.buckets().list("XXXX").execute().getItems();
if(buckets != null) {
for(Bucket b : buckets) {
list.add(b.getName());
}
}
}

错误和堆栈跟踪

Exception in thread "main" com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
"error" : "invalid_grant"
}

at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105)
at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287)
at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:307)
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:269)
at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489)
at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:858)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
at GoogleStorageFetcher.main(GoogleStorageFetcher.java:143)

最佳答案

此错误是由于服务帐户 ID 不正确造成的。我使用的是客户端 ID(以 .apps.googleusercontent.com 结尾)而不是电子邮件地址(以 @developer.gserviceaccount.com 结尾)。邮箱地址没有问题。

关于java - Google Cloud Storage 和服务帐户出现 invalid_grant 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18498832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com