“getCalendarById”未定义

时间:2014-02-04 18:16:32

标签: google-apps-script

我的Code.gs有什么问题,这给了我“getCalendarById”没有定义?另外如果我添加CalendarApp。在getCalendarById方法的前面,整个事情中断,URL只返回驱动器错误。

解决方案: 我必须在getCalendarById前添加CalendarApp我读错了文档(doc link)。在“授予访问权限”部分的文档中,我读了 -

脚本不会请求授权......或者您将脚本作为以脚本所有者的用户身份运行的Web应用程序访问。

我是以我自己的身份运行脚本,但没有意识到上面的引用意味着它不会出去获得授权,而不是它仍然需要你自己去获取。非常感谢Serge insas的大力帮助,坚持我和理解。

Code.gs:

function doGet() {
  return HtmlService.createHtmlOutputFromFile('index.html').setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

function listEvents(dateSelected) {
  var calendar = getCalendarById('en.usa#holiday@group.v.calendar.google.com').getEventsForDay(new Date(dateSelected)); // if I put calendarapp. the whole thing returns an error from the URL

  Logger.log('Number of events: ' + calendar.length);
}

HTML:

<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/redmond/jquery-ui.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>


<div class="container" >
    <div>
      <h1>Welcome</h1>
      <p>Please select a date below.</p>
      <p>Click Here: <input type="text" name="date" id="datepicker" /><p> 
    </div>
</div>
<div id='test'></div>

<script>
$("#datepicker").datepicker();
$("#datepicker").on("change", function () {
var dateSelected = $(this).val()
$("#test").text(dateSelected);
google.script.run.listEvents(dateSelected);
});

</script>

1 个答案:

答案 0 :(得分:1)

getCalendarById()calendarApp服务的一种方法,正确的语法如下:

var calendar = CalendarApp.getCalendarById("xxxxxxxx");

请参阅doc here