2012-04-26 7 views
6

Ich versuche, Google Service-Konten zu verwenden, um von meiner AppENgine Java App auf die Fusion-Tabelle zuzugreifen. Dieser Codeausschnitt verwendet OAuth-Zugriffstoken zu erhalten:Fusionstabelle und Google-Dienstkonten

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

ich in der Lage war erfolgreich Zugriffstoken zu erhalten, aber wenn ich TABLE Abfrage auszuführen versuchen CREATE ich erhielt:

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

Dienstkonto tun Arbeitet mit Fusion Tables?

+0

Ich habe das gleiche Szenario und damit, Problem ... würde gerne wissen, ob Sie eine Lösung gefunden haben. Wenn ich es früher mache, lasse ich dich meine Lösung wissen :) – AlejandroVK

+0

Noch nicht wirklich. Schließlich möchten wir BigQuery und die benutzerdefinierte Benutzeroberfläche verwenden. –

+0

Gut zu wissen, ich habe es geschafft, Fusion Tables zu verwenden, obwohl es viele Einschränkungen bezüglich Anzahl von Anfragen, Zellen usw. hat, die es schwierig machen, es für Big Data-Apps zu verwenden. Trotzdem ist es großartig, um Mashups zu erstellen. – AlejandroVK

Antwort

1

Ich bin nicht schrecklich mit Fusion Tables vertraut, aber es ist wahrscheinlich, dass Sie müssen entweder:

1) Erteilen der Berechtigung für das Dienstkonto (die „E-Mail-Adresse“ in der Admin-Konsole gefunden) zu Zugriff auf die Tabelle. Dies würde wahrscheinlich passieren. Die Probe bei https://developers.google.com/appengine/articles/prediction_service_accounts kann als Ausgangspunkt für diesen Prozess hilfreich sein.

2) Melden Sie sich bei einem Benutzer an, der Zugriff auf die Tabelle hat (oder auf die Daten, auf die Sie zugreifen möchten), und autorisieren Sie den Zugriff für die Anwendung mithilfe des dreibeinigen OAuth-Ablaufs. Wenn Sie auf Daten zugreifen, die einem Endbenutzer gehören (z. B. [email protected]), müssen Sie dies wahrscheinlich tun.

Hoffe, das hilft.

+1

Second ist keine Option, da wir die Anwendung selbst besitzen müssen. Erstens funktioniert auch nicht, weil Anwendung kann nicht eine neue Tabelle mit Dienstkonto erstellen, so haben wir keine Tabelle Zugriff gewähren zu. –