Pregunta sobre google-app-engine, google-fusion-tables – Fusion Table y Google Service Accounts

6

Estoy tratando de usar las cuentas de servicio de Google para acceder a la tabla Fusion desde mi aplicación Java App. Este fragmento de código se utiliza para obtener el token de acceso OAuth:

<code> 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();
</code>

Pude obtener exitosamente el token de acceso, pero cuando intento ejecutar la consulta CREAR TABLA obtuve:

<code>   <HTML>
    <HEAD>
     <TITLE>Login required</TITLE>
    </HEAD>
    <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
     <H1>Login required</H1>
     <H2>Error 401</H2>
    </BODY>
   </HTML>
</code>

¿La cuenta de servicio funciona con Fusion Tables?

En realidad no todavía. Finalmente decidimos usar BigQuery y la interfaz de usuario personalizada. Kirill Lebedev
Es bueno saberlo, logré usar Fusion Tables, aunque tiene muchas limitaciones en cuanto al número de solicitudes, celdas, etc., que hacen que sea difícil de usar para las aplicaciones de Big Data. Aún así, es genial para crear mashups. AlejandroVK
Resultó para mí: estaba usando el "ámbito" incorrecto (copié el servicio sqls de la guía de aprendizaje de OAuth ...) scipilot
Tengo el mismo escenario y, por lo tanto, problema ... me encantaría saber si encontraste una solución. Si lo hago antes, te haré saber mi solución :) AlejandroVK
3 años después, he tenido exactamente el mismo problema con FT v2. ¿Alguien lo resolvió? scipilot

Tu respuesta

1   la respuesta
1

pero es probable que necesites:

1) Conceda permiso a la cuenta de servicio (la "dirección de correo electrónico" se encuentra en la consola de administración) para acceder a la tabla. Esto probablemente pasaría a través de la muestra enhttps://developers.google.com/appengine/articles/prediction_service_accounts Puede ser útil como punto de partida para este proceso.

2) Inicie sesión en un usuario que tenga acceso a la tabla (o cuyos datos está intentando acceder) y haga que autoricen el acceso para la aplicación utilizando el flujo de OAuth de tres patas. Si está accediendo a datos que son propiedad de un usuario final (por ejemplo: [email protected]), entonces probablemente deberá hacerlo.

Espero que esto ayude.

Segundo, no es una opción, porque necesitamos que la aplicación en sí sea propietaria de los datos. La primera no funcionará también, porque la aplicación no puede crear una nueva tabla con la cuenta de servicio, por lo que no tenemos una tabla a la que otorgarle acceso. Kirill Lebedev

Preguntas relacionadas