2024年7月4日 星期四

JavaScript : 擷取 Google 日曆製作簡明行事曆

2024年7月4日 星期四

回想自己班級網站的經營歷程, 2007年起的班級網頁就改放到 Googloe Blogger。2009年那一屆更精進一些,利用 Blogger 可以自訂發布時間,時間到了,文章自動發布,用這個機置,前一天就將聯絡簿的內容打到新文章中,然後定時張貼,有學生很認真地發現了這個機置,居然一大早就上網看內容,人還沒到學校,回家功課的項都抄完了;另一個則是班級行事曆是使用 Google 日曆,在班級網站首頁中,以程式抓取日曆內容,並顯示最近的行事內容。

那幾年用的是類似這樣的網址來抓取公開的日曆內容:

http://www.google.com/calendar/feeds/日曆的ID/public/full?orderby=starttime&sortorder=ascending&alt=json-in-script&callback=listEvents&start-min=2009-01-01T00:00:00+08:00&start-max=2024-07-04T00:00:00+08:00

這兩天試了一下, 這個格式的網址已經不能用了。那有沒有替代的呢?

看到網路中的教學,大多是得使用 API key ,然後去呼叫 API。既然是公開的日曆,幹嘛還需要 API key?

觀察了一下網路中那些公開的 Google 日曆,其實它在擷取資料時,是用類似這樣的網址:

https://clients6.google.com/calendar/v3/calendars/日曆的ID/events?calendarId=日曆的ID&singleEvents=true&eventTypes=default&eventTypes=focusTime&eventTypes=outOfOffice&timeZone=Asia%2FTaipei&maxAttendees=1&maxResults=最多幾則&sanitizeHtml=true&timeMin=編碼過的開始日期時間&timeMax=編碼過的結束日期時間&key=AIzaSyBNlYH01_9Hc5S1J9vuFmu2nUqBZJNAXxs&%24unique=gc456

如果 Google 日曆是「有設為公開」的,將網址中紅色的部份置換掉,就能抓到 JSON 格式的日曆資料,剩下的,就看要輸出什麼欄位,輸出成什麼樣子了。

來試一下,直接利用 Google 日曆,輸入起始日期、顯示週數,就能製作簡明行事曆。(按這裡套用2012年範例的設定)



簡明行事曆


沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket