繁体   English   中英

Code.gs中的Google Apps脚本返回对象

[英]Google Apps Script return object in Code.gs

是否无法从服务器端以Google Apps脚本返回对象? 我的代码如下:

function getAllEventsOfDate(){
  var cal = CalendarApp.getCalendarById(Session.getActiveUser().getEmail());
  var events = cal.getEventsForDay(new Date());
  var results = [];
  for(var i = 0; i < events.length;i++){
    var event = {title:events[i].getTitle(), desc:events[i].getDescription(), location:events[i].getLocation(), startTime:events[i].getStartTime(), endTime: events[i].getEndTime()}; 
    results.push(event);
  }
  Logger.log(results);
  return results;
}

在我的HTML(称为Agenda.html)中,我有以下内容:

$(document).ready(function(){
  google.script.run.withSuccessHandler(getAgendaData).getAllEventsOfDate();
 });

function getAgendaData(data)
{
    console.log(data);
}

这应该只返回我从事件数据中定义的对象的数组中。 但是,这不起作用,我收到一个脚本已成功完成的错误,但是返回的值不是有效的返回类型。 如果我更改return语句以return results[0]; ,它也不起作用(希望检查它是否是由数组引起的)。 如果我将其更改为return results[0].title; 它确实起作用:我的日历的第一个事件的标题显示在控制台中。 这是否意味着我无法返回对象? 任何帮助将非常感激。

我的Code.gs doGet具有:

function doGet(){
    return HtmlService.createTemplateFromFile('Agenda').evaluate();
}

更新

我自己找到了它,显然日期类型不是合法的参数类型或返回类型(这也适用于数组,对象等中的变量)。 我已经将用作参数或返回类型的每个Date更改为.toString(),现在可以使用了。 使用这些日期字符串,我也可以为这些日期创建日期对象。

.gs脚本可以返回一个对象。 通过更新,您似乎发现了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM