我在日本上班,平日出門很多時都要依賴鐵路。雖然每間鐵路公司都有官方運行情報,手機亦可以安裝交通 App,但現實是我不會每次出門前都主動打開來看。有時去到車站,才發現列車延誤、運休,或者有服務暫停的情況,這時才再想辦法改路線,其實已經有點被動。
所以我想試做一個簡單的自動通知工具,不需要每次自己手動查。我的想法是:在我平日出門前,以及下班前,由 VPS 自動檢查我常用路線的運行情況,然後透過 Telegram 發一個通知給我。如果一切正常,就告訴我暫時沒有問題;如果有延誤或運休,就提前提醒我。
為什麼用 VPS
這次我用 VPS 來做這件事,主要是因為 VPS 可以長時間運作,不需要開著自己的電腦。設定好之後,它可以在指定時間自動執行任務。整體流程其實不算複雜:VPS 負責定時檢查資料,程式負責判斷路線狀態,Telegram Bot 負責把結果發送到手機。
通知方式
我把通知設計成平日固定時間發出,而不是全天候不停提醒。原因是我主要只需要在出門前和下班前知道狀況,不想被太多訊息打擾。如果路線正常,系統只會發一次簡單通知;如果發現延誤、運休或服務暫停,就會進入追蹤模式,每隔數分鐘再檢查一次。
追蹤模式也不是每次檢查都發訊息。我的設計是,如果狀態沒有改變,就不重複通知,避免 Telegram 被訊息洗版。只有在情況有更新,或者恢復正常時,才再發通知。如果一直未恢復,也會設定一個安全截止時間,到時間後停止追蹤,避免程式無限期運行。
資料來源的問題
在設定過程中,我也遇到了一些實際問題。例如有些網站的資料不是單純用網頁文字顯示,而是由網頁動態載入;亦有些官方網站會限制 VPS 自動讀取。最後需要因應不同資料來源,調整讀取方式。有些路線可以用官方頁面或公開資料來源,有些則需要改用較穩定的開放 API。這亦令我明白,自動化工具不只是「寫完就完」,資料來源是否穩定其實很重要。
安全設定
安全方面,我特別留意 Telegram Bot Token 的處理。Bot Token 基本上等同於那個 Bot 的密碼,所以不應該貼到公開地方,也不應該直接寫在容易外洩的位置。我把 token 放在獨立設定檔,並限制檔案權限。VPS 方面,我亦沒有為這個工具另外開網站或開放新的服務端口,因為它只需要在背後定時運行,然後主動發 Telegram 通知。
完成後的效果
完成後,這個工具可以做到我最初想要的效果:平日出門前和下班前,自動告訴我常用路線是否正常。如果有延誤,系統會繼續追蹤;如果恢復正常,也會通知我。這樣我就不需要每次自己主動打開網站查詢,至少可以減少一些重複動作。
不過,我也會把這個工具視為輔助提醒,而不是完全取代官方資訊。交通公司網站、公開 API、VPS 或 Telegram 都有可能出現故障或延遲。遇到重要行程,仍然需要用官方 App 或其他渠道再確認。
總結
總括而言,這次用 VPS 做自動交通通知,算是一個實用的小嘗試。它不是很複雜的系統,但剛好解決了我日常生活中一個細小而重複的問題。當然,這未必是唯一方法,亦可能有其他更容易、更便捷的方案,之後可以繼續研究和比較。