我正在尝试使用 Google 服务帐户从我的 AppENGine Java 应用程序访问 Fusion 表。此代码片段用于获取 OAuth 访问令牌:
ArrayList<String> scopes = new ArrayList<String>();
scopes.add("https://www.googleapis.com/auth/fusiontables");
DataAccessService fusionTablesService = EnvironmentServic.getEnvironmentService().getService(DataAccessService.class);
String token = AppIdentityServiceFactory.getAppIdentityService().getAccessToken(scopes).getAccessToken();
我能够成功获取访问令牌,但是当我尝试执行 CREATE TABLE 查询时,我得到:
<HTML>
<HEAD>
<TITLE>Login required</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Login required</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
服务帐户可以与 Fusion Tables 一起使用吗?
我对 Fusion Table 不是很熟悉,但您可能需要:
1) 授予服务帐户(“电子邮件地址”可在管理控制台中找到)访问该表的权限。这可能会通过以下示例发生https://developers.google.com/appengine/articles/prediction_service_accounts https://developers.google.com/appengine/articles/prediction_service_accounts作为此过程的起点可能会有所帮助。
2) 登录有权访问该表(或您尝试访问其数据)的用户,并让他们使用三足 OAuth 流程授权应用程序的访问权限。如果您正在访问最终用户拥有的数据(例如:[电子邮件受保护] /cdn-cgi/l/email-protection),那么您可能需要这样做。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)