轉角遇到Ubike

使用者說明手冊與技術架構

歡迎使用 轉角遇到Ubike!這是一個專為尋找 YouBike 2.0 站點設計的網頁應用程式,結合了即時地圖、自動定位與清楚的列表顯示。

此專案採用「前後端分離」與「中繼代理 (Proxy)」架構,讓任何人都能安全地使用自己的 TDX API 密鑰來查詢即時車輛資訊。

快速入門:網頁端功能操作

  1. 📍 自動定位
    開啟網頁時,系統會自動詢問 GPS 權限,請選擇「允許」。定位成功後,地圖會自動縮放到您目前的位置,並顯示附近的 YouBike 站點。
  2. 🚴 站點資訊
    • 地圖上的 數字圓圈 代表該站點目前的「可借車輛數」。若數量為 0 則會以灰色顯示。
    • 下方 (手機板) 或 右側 (電腦版) 的列表會列出最近的 20 個站點。
    • 每個卡片會顯示:距離、可借數量、電輔車/一般車數量、可停空位數量,以及 資料更新時間
    • 地圖連動:點擊地圖上的站點圖示,右側列表會自動捲動並高亮對應卡片,同時在地圖上展開詳細的站點資訊。
  3. 🔄 自動更新與跟隨
    • 系統預設每 3 分鐘 (180 秒) 會自動重新抓取最新資料,以節省 TDX 基礎會員的 API 額度(限制為 5 次/分/金鑰)。若您需要即時資訊,可隨時點選右上角的「重整」按鈕手動更新。
    • 如果在自動更新時,您沒有正在操作地圖(搜尋其他區域),地圖會 自動飛回 您的最新 GPS 位置,確保導航不迷路。
  4. 🔍 搜尋此區域
    如果您手動拖曳地圖查看別處,畫面上方會出現「搜尋此區域」按鈕。點擊後,系統會鎖定該區域進行搜尋,暫時停止自動跟隨 GPS 的功能,方便您查詢異地站點。

系統架構與 API 密鑰說明

為了確保系統的穩定性與安全性,本程式需要您輸入從「交通部運輸資料流通服務 (TDX)」申請的 API 密鑰。

📝 如何申請 TDX API 密鑰?

申請過程完全免費,只需幾個簡單的步驟:

  1. 前往 TDX 官網:打開 交通部運輸資料流通服務 (TDX) 網站
  2. 註冊/登入會員:點擊右上角的「登入/註冊」,可以使用 Google 等第三方帳號快速登入。
  3. 進入會員中心:登入後,點擊右上角您的帳號名稱,選擇「會員中心」。
  4. 建立金鑰:在左側選單選擇「資料服務」 -> 「API 金鑰」,然後點擊「新增應用程式」。
  5. 取得密鑰:隨意填寫應用程式名稱與說明後送出。接著您就會在畫面上看到專屬於您的 Client IDClient Secret。將這兩串字元複製起來,填入本網頁的設定視窗即可!

🔑 金鑰存在哪裡?

使用者輸入的 Client IDClient Secret,是透過 JavaScript 的 localStorage 技術儲存在使用者自己的電腦/手機的瀏覽器中。這意味著:

🛡️ GAS 的角色是什麼?

系統後端使用 Google Apps Script (GAS) 扮演一個「中繼代理伺服器 (Proxy)」的角色。它的運作流程非常單純:

  1. 接收:前端網頁把「使用者的金鑰」和「座標」打包,透過安全的 POST 請求傳給 GAS。
  2. 溝通:GAS 拿著這組金鑰,轉身去向 TDX 敲門要 Token。拿到 Token 後,再向 TDX 請求附近的 UBIKE 站點和車輛資料。
  3. 回傳:GAS 把 TDX 給的龐大資料整理乾淨後,原封不動地傳回給前端網頁顯示。

進階:自己部署專屬的 GAS 代理伺服器

上傳至 GitHub 的原始碼中包含了 GAS.txt 檔案。如果您有資安疑慮,或是想將此系統整合到您自己的專案中,您完全可以拿著這份程式碼,去 Google Apps Script 建立並部署一台屬於您自己的中繼站!

(請放心,上傳 GAS.txt 非常安全,因為裡面完全沒有包含任何私人的 API 金鑰,純粹只有代理運作的邏輯程式碼。)

簡單部署步驟:

  1. 開啟 Google Apps Script 建立「新專案」。
  2. GAS.txt 裡的所有程式碼複製,貼到您的專案中並存檔。
  3. 點擊右上角的「部署」 -> 「新增部署作業」,選擇「網頁應用程式」。
  4. 將「執行身分」設為「我」,「誰可以存取」設為「所有人」,然後點擊部署。
  5. 將取得的全新網址,替換掉前端 index.html 約第 305 行的 GAS_API_URL 變數即可!

隱藏密技:將網頁變成手機 APP

本專案已經過 PWA (漸進式網頁應用) 優化,您可以透過手機瀏覽器將網址 (https://begin0808.github.io/ubike/) 加入主畫面,之後點擊桌面圖示就能像原生 APP 一樣享受「全螢幕」的使用體驗!

iPhone (iOS) 使用者

  1. 使用 Safari 瀏覽器 開啟專案網頁。
  2. 點擊瀏覽器下方正中間的「分享」按鈕(一個框框加上往上箭頭的圖示)。
  3. 在跳出的選單中往下滑,選擇「加入主畫面」。
  4. 點擊右上角的「新增」,手機桌面上就會出現專屬的 APP 圖示!

Android 使用者

  1. 使用 Chrome 瀏覽器 開啟專案網頁。
  2. 點擊右上角的「三個點」選單圖示。
  3. 選擇「加到主畫面」或「安裝應用程式」。
  4. 點擊「新增」,就會自動在您的手機桌面上建立一個獨立的 APP 捷徑。

常見問題與安全須知 (Q&A)

Q1:在網頁上輸入我的 API 密鑰安全嗎?

A: 是的,相對安全。您的密鑰是存放在自己的裝置上,且傳輸過程經過 HTTPS 加密。但請注意:強烈建議 不要在公共電腦(如網咖、圖書館)或借用他人的手機時輸入密鑰。如果不小心輸入了,請務必在離開前點擊設定視窗中的「清除紀錄」按鈕。

Q2:資料會延遲嗎?

A: 本系統資料來源為 TDX API,與 YouBike 官方系統同步。但官方資料傳輸可能會有 1~3 分鐘的天然延遲,建議參考卡片上的「更新時間」。

Q3:如果別人用了這個網頁,會扣到我的 TDX API 額度嗎?

A: 不會。每個人都需要輸入自己申請的 API 密鑰。這代表大家都是用自己的額度在查詢資料,您的額度完全不會被其他人消耗。

祝您騎乘愉快!