2012-04-26 13 views
6

私はAppenggine Java AppからFusionテーブルにアクセスするためにGoogleサービスアカウントを使用しようとしています。このコードスニペットは、OAuthアクセストークンを取得するために使用されます。フュージョンテーブルとGoogleサービスアカウント

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

私は成功したアクセストークンを取得することができましたが、私は私が得た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で動作しますか?

+0

私は同じシナリオを持っているので、問題は...あなたが解決策を見つけたかどうかを知りたいです。私が早くすると、私はあなたに私の解決策を知らせるでしょう:) – AlejandroVK

+0

まだ実際にはありません。最後に、BigQueryとカスタムUIを使用することにします。 –

+0

知っておきたいことですが、私はFusion Tablesを使用することができましたが、ビッグデータアプリケーションで使用するのが難しいリクエスト、セルなどの数には多くの制限があります。それでも、マッシュアップの作成には、 – AlejandroVK

答えて

1

私はフュージョンテーブルとひどく慣れていないんだけど、あなたがどちらかに必要と思われる:

1)サービスアカウントに権限を付与(「メールアドレスは、」管理コンソールに発見された)へテーブルにアクセスします。これはおそらくを通じて起こるでしょうhttps://developers.google.com/appengine/articles/prediction_service_accountsのサンプルは、このプロセスの出発点として役立つかもしれません。

2)テーブルにアクセスできる(またはアクセスしようとしている)ユーザーにログインし、3足のOAuthフローを使用してアプリケーションのアクセスを許可するようにします。エンドユーザーが所有するデータ(ex:[email protected])にアクセスする場合は、おそらくこれを行う必要があります。

これが役に立ちます。

+1

2番目はオプションではありません。アプリケーション自身がデータを所有している必要があるからです。 サービスアカウントを持つ新しいテーブルを作成できないため、アクセスを許可するテーブルがないため、最初は機能しません。 –

関連する問題