6

Google サービス アカウントを使用して AppEngine Java アプリから 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();

アクセス トークンを取得できましたが、CREATE 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 で機能しますか?

4

1 に答える 1

1

Fusion Tables についてはあまり詳しくありませんが、次のいずれかが必要になる可能性があります。

1) テーブルにアクセスする権限をサービス アカウント (「メール アドレス」は管理コンソールに表示されます) に付与します。これはおそらく、https://developers.google.com/appengine/articles/prediction_service_accountsのサンプルがこのプロセスの開始点として役立つ場合があります。

2) テーブルにアクセスできるユーザー (またはアクセスしようとしているデータのユーザー) にログインし、three-legged OAuth フローを使用してアプリケーションへのアクセスを承認してもらいます。エンド ユーザー (例: joe@gmail.com) が所有するデータにアクセスしている場合は、おそらくこれを行う必要があります。

お役に立てれば。

于 2012-05-01T17:08:55.800 に答える