# TDX API 介接教學全攻略 ## TDX API 用途 平臺**提供涵蓋全國尺度之公車、臺鐵、高鐵、捷運、航空、自行車**等**公共運輸旅運資料服務 API**,歡迎各產政學單位介接使用。 利用本平臺開放資料進行各項應用服務開發時,請考量**不同特性使用者**(如:性別/身心障礙/老幼等)的需求 ## 本次活動 API 介紹 * [API 網址](https://tdx.transportdata.tw/api-service/swagger),分別有觀光、自行車、公車動態 * [PTX API 官方操作教學](https://docs.google.com/viewer?url=https://github.com/ptxmotc/PTX_Web/blob/master/Swagger%E6%9C%8D%E5%8B%99%E8%AA%AA%E6%98%8E%E4%B8%8A%E5%82%B3%E5%8F%83%E8%80%83%E6%AA%94%E6%A1%88/%E5%85%AC%E5%85%B1%E9%81%8B%E8%BC%B8%E6%95%B4%E5%90%88%E8%B3%87%E8%A8%8A%E5%B9%B3%E5%8F%B0%E8%B3%87%E6%96%99%E6%9C%8D%E5%8B%99%E9%96%8B%E7%99%BC%E5%AF%A6%E4%BD%9C.pdf?raw=true) * 以 Google 關鍵字為例 ### 觀光 1. 取得所有觀光景點資料:`/v2/Tourism/ScenicSpot` 2. 取得指定[縣市]觀光景點資料:`/v2/Tourism/ScenicSpot/{City}` > 兩者資料集撈取的景點資料一樣,但後者可以針對縣市來撈取 ### 自行車 1. 取得動態指定[縣市]的公共自行車即時車位資料:`/v2/Bike/Availability/{City}` 2. 取得指定縣市之自行車道路網圖資:`/v2/Cycling/Shape/{City}` 3. 取得指定[位置,範圍]的全臺公共自行車即時車位資料:`/v2/Bike/Availability/NearBy` ### 公車 1. 取得市區所有公車路線:`/v2/Bus/Route/City/{City}` 2. 取得預估到站資料[批次更新]:`/v2/Bus/EstimatedTimeOfArrival/City/{City}/{RouteName}` 3. 取得路線的站序資料(座標):`/v2/Bus/StopOfRoute/City/{City}/{RouteName}` 4. 取得路線資訊(營運業者、車牌號碼、票價):`/v2/Bus/Route/City/{City}/{RouteName}` 5. 取得指定[縣市],[路線名稱]的市區公車路線班表資料:`/v2/Bus/Schedule/City/{City}/{RouteName}` > filter 篩選取得路線名稱為紅56:contains(RouteName/Zh_tw,'紅56A') > https://ptx.transportdata.tw/MOTC/v2/Bus/Route/City/Kaohsiung?$filter=contains(RouteName/Zh_tw,%27%E7%B4%8556A%27)&$format=JSON ### 公車範例 * [雲端公車](https://yunbus.tw/#!main) * [高雄公車動態](https://ibus.tbkc.gov.tw/ibus/driving-map) * [台中即時公車動態資訊](https://citybus.taichung.gov.tw/ebus/driving-map) * [朝陽科大五路線公車動態地圖](https://v.im.cyut.edu.tw/~ckhung/saas/potluckmap/m/cyut-bus/) * [曾漢棋綜合醫院即時資訊顯示看板](http://hbus.nantou.gov.tw/kqoyi/chc.html) ## TDX API 申請 [網址](https://motc-ptx-api-documentation.gitbook.io/motc-ptx-api-documentation/hui-yuan-shen-qing) ### 流程 1. [註冊會員](https://ptx.transportdata.tw/PTX/Management/AccountApply),並選擇一般會員 2. 依照下方欄位填寫,三天後審核成功就會發 Email 信提供 APP ID / KEY ``` 身分類型:加值業者 服務類型:資訊服務業 資料使用用途:程式教學/練習 應用類型:觀光旅遊、網站應用 網址:可先暫填自己的 GitHub 網址或 repo 或 codepen 加值應用、加值應用名稱:加註 「The F2E 活動用」(若能詳述如何應用會更好) 申請服務概述:公車、觀光景點、腳踏車 API等動靜態資料(看要不要說更詳細也可以) ``` Q:被退審核後,該如何重新申請? Q:找不到 APP KEY 該怎麼辦? ## API 帶 header 驗證範例程式碼 * [範例程式碼](https://codepen.io/hexschool/pen/RwgvZEZ?editors=0010) > 不帶 APP ID、KEY 還是可以練習,但會有請求次數限制 ## JS 取值設計 * [範例程式碼](https://codepen.io/hexschool/pen/dyRrMjJ?editors=0010) ## API 介接文章教學 1. [TDX:運輸資料流通服務,以 JS 串接公車等待時間為例](https://noob.tw/tdx-api/) 2. [Postman 如何使用 HMAC 以 TDX API 為例](https://hsiangfeng.github.io/other/20210928/2005731696/?fbclid=IwAR2Lef6bS_rVXxcjbl6Bo2PVXVx7fNJPFKkxkoN_e8ejTq1jdGLZf6IrVvU) --- Q: - curl -