2012-04-26 1 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> 

이 서비스 계정을 수행 퓨전 테이블에서 작동합니까?

+0

나는 동일한 시나리오를 가지고 있으므로 문제는 ... 해결책을 찾았는지 알고 싶습니다. 내가 더 빨리하면, 내 해결책을 알려 줄거야 :) – AlejandroVK

+0

아직은. 마지막으로 BigQuery와 맞춤 UI를 사용하고자합니다. –

+0

알아두면 좋겠지 만 융통성있는 테이블을 사용할 수 있었지만 큰 데이터 앱에는 사용하기가 어려웠던 요청, 셀 등의 여러 가지 제한 사항이 있습니다. 그래도 매시업을 만드는 데 큰 도움이됩니다. – AlejandroVK

답변

1

나는 퓨전 테이블에 대단히 익숙하지 해요,하지만 당신이에 하나 필요 가능성이 높습니다 :

1) 서비스 계정에 부여 권한 (이하 "이메일 주소는"관리 콘솔에서 발견된다)에 테이블에 액세스하십시오. 이것은 아마도 https://developers.google.com/appengine/articles/prediction_service_accounts의 샘플이이 프로세스의 시작점으로 도움이 될 수 있습니다.

2) 테이블에 액세스 할 수있는 사용자 (또는 액세스하려는 데이터)에 로그인하고 3-legged OAuth 플로우를 사용하여 애플리케이션에 대한 액세스 권한을 부여하십시오. 최종 사용자 (예 : [email protected])가 소유 한 데이터에 액세스하는 경우이 작업을 수행해야 할 수 있습니다.

희망이 도움이됩니다.

+1

우리는 응용 프로그램 자체가 데이터를 소유해야하기 때문에 두 번째 옵션이 아니다. 먼저 서비스 계정으로 새 테이블을 만들 수 없으므로 첫 번째 기능이 작동하지 않으므로 액세스 권한을 부여 할 테이블이 없습니다. –