我读过许多人和我有同样的问题,但给他们的所有解决办法对我和其他许多人都不起作用。
当我将脚本部署为wep应用程序并进行更新时,通常会显示以下消息:
Deploy as Web app
....
current wep app url:
......
Test web app for your "latest code" (link)
如果我打开给出的链接("最新代码"),网络应用程序工作正常,但如果我手动打开网址,则说:
TypeError: Cannot call method "getDataRange" of null.
可能是授权的东西,但我不确定。
var HEADER_SIZE=1;
function myFunction() {
var ss = SpreadsheetApp.openById('1_LpdPfvDnWCrFJ0NcbfTaUtQtsbD8Ph8xCNA-pTLuY0');
var s = ss.getSheetByName('tablaSordos');
var data = s.getDataRange().getValues();
var total =(data.length)-(HEADER_SIZE);
posicion donde termina el Header
var il = (total+HEADER_SIZE);
var users = [];
for(i=sl; i<il; i++){
users.push(data[i]);
}
Logger.log(users);
var usersData = [];
for(i in users){
var row = users[i];
var nombre = row[0];
var direccion = row[1];
var lat = row[2];
var long = row[3];
var territorio = row[4];
var localidad = row[5];
var observaciones = row[6];
var userData= new toObject(nombre,direccion,lat, long, territorio, localidad, observaciones); //creamos un objeto, con cada usuario
Logger.log(userData);
usersData[i] = userData;
}
return usersData;
}
function toObject(nombre, direccion, lat, long, territorio, localidad, observaciones){
this.nombre = nombre;
this.direccion = direccion;
this.lat = lat;
this.long = long;
this.territorio = territorio;
this.localidad = localidad;
this.observaciones = observaciones;
}
function doGet() {
var datos = myFunction();
return ContentService.createTextOutput(JSON.stringify(datos)).setMimeType(ContentService.MimeType.JSON);
}
答案 0 :(得分:1)
经过大量阅读后我发现了问题和解决方案:
1保存新版本的脚本
2选择选项:“在部署Web应用程序时将应用程序作为:me”执行。