2012-04-26 101 views
6

我正嘗試使用Google Service帳戶從我的AppENgine Java應用程序訪問Fusion表。這段代碼是用來獲取OAuth訪問令牌:Fusion Table和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(); 

我是能夠成功地獲得訪問令牌,但是當我試圖執行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?

+0

我有相同的情況,因此,問題......很想知道你是否找到了解決方案。如果我早點做,我會讓你知道我的解決方案:) – AlejandroVK 2013-05-07 08:03:53

+0

還不是真的。最後,我們希望使用BigQuery和自定義用戶界面。 – 2013-05-23 03:06:46

+0

我不得不知道,我設法使用了Fusion Tables,儘管它對請求,單元格等有很多限制,使得它很難用於大數據應用程序。儘管如此,3年後創建混搭 – AlejandroVK 2013-05-23 15:13:17

回答

1

我並不十分熟悉的融合表,但它可能是你需要:

1)授予權限的服務帳戶(以下簡稱「電子郵件地址」在管理控制檯中)與訪問表格。這可能會發生在https://developers.google.com/appengine/articles/prediction_service_accounts的樣本可能有助於作爲此過程的起點。

2)登錄一個有權訪問該表的用戶(或者您試圖訪問其數據的用戶),並讓他們使用三段式OAuth流程授予應用程序訪問權限。如果您訪問的是最終用戶擁有的數據(例如:[email protected]),那麼您可能需要執行此操作。

希望這會有所幫助。

+1

其次是不是一個選項,因爲我們需要應用程序本身擁有數據。 首先不會工作,因爲apllication不能創建一個帶有服務帳戶的新表,所以我們沒有表來授予訪問權限。 – 2012-05-01 18:19:07