我有两个服务帐户来执行Calendar API请求。 两者都是以相同的方式生成的,但它们之间的差异很小 第一个服务帐户的电子邮件地址以" @ developer.gserviceaccount.com"它的工作原理 第二个服务帐户的电子邮件地址以" @ project-id.iam.gserviceaccount.com"结束。在对Calendar API执行请求后,我收到错误:
{
"code" : 400,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Bad Request",
"reason" : "keyInvalid"
} ],
"message" : "Bad Request"
}
代码示例:
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(service_account_email)
.setServiceAccountScopes(Arrays.asList("https://www.googleapis.com/auth/calendar"))
.setServiceAccountUser(user_email)
.setServiceAccountPrivateKeyFromP12File(
new java.io.File("key.p12")).build();
Calendar service = new Calendar.Builder(httpTransport, jsonFactory,
credential).setApplicationName("MyApp")
.build();
service.events().list("primary").execute();
任何想法可能是什么原因?
修改
当我尝试使用Directory API时,也会出现此问题。
答案 0 :(得分:0)
这似乎是新服务帐户和Google API的临时问题。 现在所有服务帐户都有效。