昨天我们完成了基础建设,但是有个地方忘记讲到,我现在赶快补充一下!
我们昨天设定归还日期时,一定有人会问:
恩,这是一个非常大的问题,所以我们必须要来解决一下,增加「归还时间」。
首先我们进入表单来到「预计归还日期」这一个栏位,接下来点选右下角的三个点。
点开後请选择加入时间。
然後你就可以看到我们的预计归还日期後面增加了时间的选项了~
完成了之後,我们回到 GAS 本体。
我们要来把对方预计的归还时间上到 Google Calendar 上,那麽又要来看一下 Documents 的部分啦!
我突然发现头上有路径,之後就放备注吧! 这张图的连结在 「注一」
我们往下拉拉拉拉拉,可以看到 Methods 中提供了不少创建日历的方法。
那根据我专业的分析(专业?),我们应该要使用的是 createEvent(title, starTime, endTime, [options])
这个方法。
有人可能会有疑惑:为什麽我的
options
要用中括号标起来呢,那是因为该项为可选选项,在程序设计的文件中,如果要表示是可选的话,就会用中括号标起来。
当然啦!Google 来是佛心来着,帮你把它分开写了 !这样也比较好找你要的东西。
这边我们就点选那个 Methods ,然後来看一下吧!
这边可以注意到他的 options
的表达格式会是 Object
的方式,也就是说我们需要把他打成:
let options = {
description: "Your descriptions",
location: "The location you set it",
guests: "guest1 email, guest2 email, guest3 email",
sendInvites: false || true
}
你可以把上面复制起来丢进去改就好。
那我们现在新增一个函式 setCalendar
:
function setCalender({email, name, itemName, itemCount, expireAt}) {
const eventTitle = `${name} 借用 ${itemName} 归还`;
const eventEndTime = new Date(expireAt);
// 设定结束前一小时为我们的活动开始时间,顺带当作提醒。
const eventStartTime = new Date(new Date(expireAt).getTime() - (1*1000*60*60));
// 设定一下 options
const eventOptions = {
description: `${name} 借用 ${itemCount} 个物品 ${itemName} 於 ${expireAt} 归还。`,
guests: `${email}`,
// sendInvites 我设定为 true,寄信去提醒他有这件事情
sendInvites: true
};
// 执行主要 Methods
CalendarApp.createEvent(eventTitle, eventStartTime, eventEndTime, eventOptions);
}
我这边呢为了後续好去修改内容,所以把所有的 arguments 都分开来写。
完成之後我们再新增一个函式 onFormSubmit
:
function onFormSubmit() {
// 取得提交的资料
const datas = SpreadsheetApp.getActiveRange().getValues()[0];
// 把资料整理放进 Object 中
const dataObject = {
email: datas[1],
name: datas[2],
itemName: datas[3],
itemCount: datas[4],
expireAt: datas[5]
}
// 执行设定日历功能
setCalender(dataObject)
}
完成了之後,我们设定好触发条件,然後就去提交表单吧!
这边依然要给予程序权限去得到你的 Calendar 喔~
然後打开 Calendar 来看一下:
大成功!
今天我们很快速地把日历的部分更新上去了!
明天我们就要来做最後的事情:提醒以及逾期通知!
我们明天见罗!
Tailwind CSS 台湾 (脸书粉丝专页)
兔兔教 × Tailwind CSS Taiwan (脸书社群)
学生:老师,明天我们就要远距教学了,这样程序设计课程怎麽办?
我:不用怕孩子,我就是为了这个才挑选这样的云端平台来授课的!不管是不是远距我都不怕!
学生:但是我怕阿…
我:不过就是 39 分被死当,怕什麽!
学生:……
<<: [Day17] swift & kotlin 实作篇!(8) Animation - swift
>>: [NestJS 带你飞!] DAY10 - Pipe (下)
Seafile 是一个开源的文件云存储平台,解决文件集中存储、同步、多平台访问的问,允许用户创建“群...
昨天介绍了些F12的功能,今天要来说CSS的框架。 CSS的框架:Bootstrap 因为我目前碰的...
我们透过 LeetCode #412 Fizz Buzz 来实际感受解决问题的过程 ( 题目连结 )...
PUT / PATCH:修改资料 一样的模式再来一次,根据以上的Reqres API 来示范 首先一...
SQL && NoSQL SQL Structured Query Language...