这是一个理论问题,而不是一个实际问题。与此密切相关:Fusion Table and Google Service Accounts。我正在尝试制作一个创建,填充和查询一些Fusion表的应用程序。据我所知,如果表格都是公开的,则只需要API密钥。
否则,假设我应该使用Oauth,我不希望任何用户对任何内容进行身份验证,因为这将是App拥有的数据 - Google Fusion Tables(不涉及用户)。看起来我必须为此创建一个服务帐户:
https://developers.google.com/accounts/docs/OAuth2ServiceAccount
我已经创建了一个,获得了私钥和所有内容,但这是我迷路的地方,而且文档似乎没有帮助......我应该怎么处理这个私钥?我很想看到使用这个私钥来访问融合表的一步一步的例子......
谢谢! 亚历
答案 0 :(得分:1)
可悲的是,我必须回答我自己的问题,但如果有人遇到同样的问题就行了。关于访问Fusion Tables,基本上有两种方法:
这意味着如果您的应用只需要访问标记为“公共”的Fusion Tables,那么它就足够了。例如,下一个代码段显示了如何执行此操作(使用JERSEY发出REST请求)。我显然删除了我的API密钥,只需使用你的密钥:
Client client = Client.create();
String g = null;
try {
g = URIUtil.encodeQuery("https://www.googleapis.com/fusiontables/v1/query?sql=SELECT * FROM 1V5-SgN2tbPHrzFdsapEI541yTD9I3p7NQIXqeSo&key=[your key here]");
}
catch (URIException e) {
e.printStackTrace();
}
WebResource webResource = client.resource(g);
String s = webResource.get(String.class);
Logger.debug(s);
如果您需要上述内容,并且您无法让真实用户干扰此过程,则需要一个服务帐户,可以在API console manager中轻松创建。我的建议是检查谷歌提供的样本的整个项目树here,并尝试一些服务帐户:融合表,加号和存储。我发现他们非常喜欢这个。
您可以在this question找到更多相关信息。
因此,它取决于您需要的访问级别,但大多数情况下,您需要进行Oauth身份验证。
希望这有助于某人。
此致 亚历