2012-04-26 19 views
6

Estoy tratando de usar Google Service Accounts para acceder a la tabla Fusion desde mi aplicación AppENgine Java. Este fragmento de código se utiliza para obtener OAuth token de acceso:Fusion Table y Google Service Accounts

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

pude recabar token de acceso, pero cuando estoy tratando de ejecutar consulta CREATE TABLE que tengo:

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

Haz de cuenta de servicio funciona con Fusion Tables?

+0

Tengo el mismo escenario y, por lo tanto, problema ... me encantaría saber si encontraste una solución. Si lo hago antes, te dejaré saber mi solución :) – AlejandroVK

+0

No realmente todavía. Finalmente, deseamos utilizar BigQuery y una interfaz de usuario personalizada. –

+0

Es bueno saber que he logrado utilizar Fusion Tables, aunque tiene muchas limitaciones con respecto al nº de solicitudes, celdas, etc., que dificultan el uso de las aplicaciones de Big Data. Aún así, es genial para crear mashups – AlejandroVK

Respuesta

1

No estoy terriblemente familiarizado con las tablas dinámicas, pero es probable que sea necesario:

1) Conceder permiso a la cuenta de servicio (el "email" se encuentra en la consola de administración) a accede a la mesa Esto probablemente ocurra a través de La muestra en https://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 de los datos a los que intenta acceder) y pídales que autoricen el acceso para la aplicación utilizando el flujo OAuth de tres patas. Si está accediendo a datos que son propiedad de un usuario final (ej .: [email protected]), entonces probablemente necesite hacer esto.

Espero que esto ayude.

+1

En segundo lugar, no es una opción, porque necesitamos que la aplicación sea propietaria de los datos. Primero, tampoco funcionará, porque la aplicación no puede crear una nueva tabla con la cuenta de servicio, por lo que no tenemos una tabla para otorgar acceso. –

Cuestiones relacionadas