Fusion Table和Google Service帐户

Kir*_*dev 6 google-app-engine google-fusion-tables

我正在尝试使用Google服务帐户从我的AppENgine Java App访问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();
Run Code Online (Sandbox Code Playgroud)

我能够成功获取访问令牌,但是当我尝试执行CREATE TABLE查询时,我得到了:

   <HTML>
    <HEAD>
     <TITLE>Login required</TITLE>
    </HEAD>
    <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
     <H1>Login required</H1>
     <H2>Error 401</H2>
    </BODY>
   </HTML>
Run Code Online (Sandbox Code Playgroud)

服务帐户是否适用于Fusion Tables?

小智 1

我对 Fusion Table 不是很熟悉,但您可能需要:

1) 授予服务帐户(“电子邮件地址”可在管理控制台中找到)访问该表的权限。这可能会通过https://developers.google.com/appengine/articles/prediction_service_accounts上的示例发生,作为此过程的起点可能会有所帮助。

2) 登录有权访问该表(或您尝试访问其数据)的用户,并让他们使用三足 OAuth 流程授权应用程序的访问权限。如果您正在访问最终用户拥有的数据(例如:joe@gmail.com),那么您可能需要执行此操作。

希望这可以帮助。