0

这更像是一个理论问题,而不是一个实际问题。与此密切相关:Fusion Table 和 Google Service Accounts。我正在尝试制作一个创建、填充和查询一些 Fusion 表的应用程序。据我从文档中了解到,如果表都是公开的,则只需要 API 密钥。

否则,假设我应该使用 Oauth,我不希望任何用户对任何内容进行身份验证,因为这将是 App 拥有的数据 - Google Fusion Tables(不涉及用户)。看起来我必须为此创建一个服务帐户:

https://developers.google.com/accounts/docs/OAuth2ServiceAccount

我已经创建了一个,得到了私钥和所有东西,但这是我迷路的地方,文档似乎没有帮助......我应该如何处理这个私钥?我很想看到使用此私钥访问融合表的分步示例...

谢谢!亚历克斯

4

1 回答 1

1

可悲的是,我必须回答我自己的问题,但如果有人有同样的问题,那就去吧。关于访问 Fusion Tables,基本上有两种方法:

  • 用于访问 Fusion Tables 公共表的 API 密钥(仅具有读取权限)

这意味着,如果您的应用程序只需要访问标记为“公共”的 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);
  • 用于创建、填充、查询和删除 Fusion Tables 的服务帐户

如果您需要上述内容,并且不能让真实用户干预该过程,则需要一个服务帐户,可以在API 控制台管理器中轻松创建。我对此的建议是查看谷歌在此处提供的整个项目树示例,并尝试一些服务帐户:融合表、加号和存储。我发现它们对此非常有启发性。

您可以在此问题中找到更多相关信息。

因此,这取决于您需要的访问级别,但大多数时候,您需要 Oauth 身份验证。

希望这可以帮助某人。

问候,亚历克斯

于 2013-05-08T13:26:45.437 回答