我的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>
答案 0 :(得分:1)
getCalendarById()
是calendarApp
服务的一种方法,正确的语法如下:
var calendar = CalendarApp.getCalendarById("xxxxxxxx");
请参阅doc here