Google App脚本和FusionTable

时间:2014-05-21 20:42:04

标签: google-apps-script google-fusion-tables

我正在制作我的第一个Google App脚本(脚本为Webapp)并尝试访问融合表,但每次我尝试访问融合表时,我都会获得不足的权限。我以应用程序的所有者身份登录,因此我不确定为什么会发生这种情况。

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 个答案:

答案 0 :(得分:1)

ScriptApp.getOAuthToken()返回的OAuth令牌仅授权您的脚本所需的范围,该范围由您使用的Apps脚本服务确定。例如,如果您使用DriveApp,则会请求Google Drive API范围。

Apps Script代码不知道您正在尝试使用Fusion Tables API,因此它没有请求该范围。不过,你很幸运! Apps脚本使用Fusion Tables advanced service与Fusion Tables进行内置集成。只需启用该服务,Apps脚本即可为您提供授权,并为您提供自动完成功能。