我正在制作我的第一个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();
}
有没有人对为什么会这样做有任何想法?
答案 0 :(得分:1)
ScriptApp.getOAuthToken()
返回的OAuth令牌仅授权您的脚本所需的范围,该范围由您使用的Apps脚本服务确定。例如,如果您使用DriveApp
,则会请求Google Drive API范围。
Apps Script代码不知道您正在尝试使用Fusion Tables API,因此它没有请求该范围。不过,你很幸运! Apps脚本使用Fusion Tables advanced service与Fusion Tables进行内置集成。只需启用该服务,Apps脚本即可为您提供授权,并为您提供自动完成功能。