Webhooks
Webhook 端點 — 接收第三方平台的即時數據推送。
概述
NexRex 使用 webhook 接收第三方平台的即時數據推送。這些端點由外部服務呼叫,不需要使用者認證。
Garmin Webhook
POST /api/webhooks/garmin/push
接收 Garmin Connect 的即時活動推送。
當使用者在 Garmin 上完成活動、同步健康數據時,Garmin 伺服器會呼叫此端點。
認證
使用 API Key 認證(x-api-key header)。
Payload 類型
- Activities:新活動完成
- Dailies:每日健康摘要(步數、心率、HRV)
- Sleep:睡眠數據
Strava Webhook
GET /activities/webhook/strava
Strava webhook 驗證端點(subscription verification)。
POST /activities/webhook/strava
接收 Strava 的活動更新通知。
認證
使用 Strava webhook subscription 驗證機制。
處理流程
1. Strava 發送活動更新通知
2. NexRex 收到通知後,使用 Strava API 拉取完整活動數據
3. 處理並儲存活動
💡 Strava webhook 只通知有新活動,完整數據需要另外用 Strava API 拉取。
Webhook 重試
如果 webhook 回傳非 2xx 狀態碼,平台方會自動重試:
- Garmin:最多 3 次重試
- Strava:最多 5 次重試