好吧,如果有人和我有同样的情况……我会发布我发现有效的解决方案。我所做的基本上是修改了示例(特别感谢 Christian Junk 的工作),因此它在身份验证方面看起来更像其他示例(存储和加号)。
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
// check for valid setup
if (SERVICE_ACCOUNT_EMAIL.startsWith("Enter ")) {
System.err.println(SERVICE_ACCOUNT_EMAIL);
System.exit(1);
}
String p12Content = Files.readFirstLine(new File("key.p12"), Charset.defaultCharset());
if (p12Content.startsWith("Please")) {
System.err.println(p12Content);
System.exit(1);
}
// service account credential (uncomment setServiceAccountUser for domain-wide delegation)
GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(FusiontablesScopes.FUSIONTABLES)
.setServiceAccountPrivateKeyFromP12File(new File("key.p12"))
// .setServiceAccountUser("user@example.com")
.build();
// set up global FusionTables instance
fusiontables = new Fusiontables.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).setApplicationName(APPLICATION_NAME).build();
这与原始示例的方法不同,但它适用于我,我可以列出表、创建新表、填充它们并删除它们。
我只是希望这些示例更容易在 Oauth 和 Fusion 表文档页面中找到,这将为我节省一些宝贵的时间 :)