簡介:Google Calendar 和其他線上日曆應用程式將提供簡單的集中式系統,在這類系統中,線上社 區可以維護事件日曆,而社區成員可以獲得關於最新事件的資訊。但是許多組織更傾向於在其社區門戶、 論壇或部落格中顯示事件日曆。他們經常把事件行事曆資訊從線上日曆應用程式複製到 Web 網站中,降低了 線上集中管理事件的效率。Google Calendar 提供了整合應用程式介面 (API),從而為這個問題提供了很 好的解決方案。瞭解如何使用 XPath 提取並在 PHP Web 網站中顯示 Google Calendar 資料。
當 幾年前我是一名自由 Web 開發人員時,我為一個特殊車型汽車的擁有者和愛好者社區(通常稱為汽車俱 樂部,它們在我生活的地方非常流行)開發了一個用 PHP 編寫的 入口網站。在聯絡我的幾年以前,一些 汽車俱樂部管理者就已經學習了基本的 Web 技巧並且自己建立了一個 Web 網站。隨著網站的成長,網站 積聚了大量頁面,其中一些發布了單獨的事件行事曆資訊的頁面已經失效。由於網站的主要目的是向公眾及 社區成員通知活動,因此這些頁面中插入了事件行事曆資訊。
隨著時間的推移,這些社區事件日曆 的不同快照不同步了。雖然很多事件已經過去很久了,但頁面中仍然保留有與之相關的側欄。即使有正確 的管理和有效 Web 設計,維護各個網頁中事件行事曆資料的各個副本也是一項花費大量時間和容易出錯 的任務。他們發現不是汽車俱樂部 Web 網站在為他們工作,而是自己在為那個 Web 網站工作。他們聯絡 到我,希望我能給他們展示一種更好的方法。
他們希望網站中有論壇,俱樂部成員可以在其中討 論他們喜愛的汽車,還要有一個集中的新聞頁面,用於發布最新的事件報導和通告。在這個新聞頁面中, 他們可以向不斷增多的成員通知事件,例如聯歡會、自駕車到野外和鄉村遊玩以及討論成員交費和預算事 項的全體成員會議。更重要的是,他們希望不必維護位於各個位置的多個事件日曆副本。希望在一個位置 輸入事件日曆並且能夠在網站中的任意位置訪問該資訊。
Google Calendar 和 Google 資料 API
線上日曆應用程式(如 Google Calendar)提供了一種解決方案。通過集中顯示和管理事件, Google Calendar 使用者可以在一個網站中共用和維護事件日曆,消除了事件組織過程中可能造成錯誤的其 中一個源頭。社區成員可以訪問線上日曆來獲悉最新事件和活動,而不會由於各個 Web 頁面中過時的事 件資訊而導致混亂。看上去線上日曆應用程式是十分理想的解決方案。
在用 Drupal 內容管理系 統(請參閱 參考資料)開發俱樂部的 Web 網站時,我建議俱樂部的管理者使用 Google Calendar 來維 護事件日曆。最初,這個建議得到了認同,並且他們反饋說效率很高,因為可以輕鬆地使用 Drupal 管理 前端來更新我為他們建立的事件側欄。但是隨著時間的推移,俱樂部的成功意味著有更多事件需要通告, 而編輯事件側欄也從輕鬆有趣變得愈加繁瑣。
Google 資料 API 及其對 Google Calendar 事件數目 據的訪問權提供了一種擺脫這種困境的方法。Google 資料 API 提供了一個 Atom 發布協議(Atom Publishing Protocol,APP)的實現,這是用於讀取和更新各種類型的文檔和資訊的 Web 服務 API。還 有適用於 Microsoft® .NET、Java™ 程式設計語言、Python 和 PHP 的第三方整合 API,這些整合 API 在一組物件導向的封裝類中封裝了大部分 Google 資料 API 功能。
經過一些研究之後,我能 夠把汽車俱樂部的 Drupal 網站擴充為擁有一直保持最新資訊的事件側欄,該側欄將從 Google Calendar 帳戶中提取最新的事件行事曆資料。