2014-05-21 57 views
0

我正在研究我的第一個Google App腳本(腳本作爲Webapp)並嘗試訪問融合表,但每次嘗試訪問融合表時都會返回足夠的權限。我作爲應用程序的所有者登錄,所以我不知道爲什麼會發生這種情況。Google App腳本和FusionTable

function getReports(){ 
    var authToken = ScriptApp.getOAuthToken(); 
    Logger.log(authToken); 
    var query = encodeURIComponent("Select * from " + tableId); 
    queryFusionTables(authToken, query); 
} 


function queryFusionTables(authToken, query) { 
    var URL = "https://www.googleapis.com/fusiontables/v1/query?sql="+query+"&key={myKey}"; 
    Logger.log(query); 
    //Logger.log(authToken); 
    var response = UrlFetchApp.fetch(URL, { 
     method: "post", 
     headers: { 
      "Authorization": "Bearer " + authToken, 
      "X-JavaScript-User-Agent": "Google APIs Explorer", 
     }, 
    }); 
    Logger.log(response.getContentText()); 
    return response.getContentText(); 
} 

有沒有人有任何想法,爲什麼發生這種情況?

回答

1

ScriptApp.getOAuthToken()返回的OAuth令牌僅被授權用於腳本所需的作用域,該作用域由您使用的Apps腳本服務確定。例如,如果您要使用DriveApp,則會請求Google Drive API範圍。

Apps腳本代碼不知道您正在嘗試使用Fusion Tables API,因此它沒有請求該範圍。但是,你很幸運! Apps腳本與Fusion Tables內置集成,使用Fusion Tables advanced service。只需啓用該服務,Apps Script將負責爲您授權,併爲您提供自動完成功能。

+0

這工作得很好!謝謝! – user3662490

+0

如果您不介意,請接受我的回答:http://meta.stackexchange.com/a/5235 –