發送提醒訊息

← 回首頁

送出後會等實際發送完成才回傳結果(每筆間隔約 1 秒,不擋呼叫端)。 所有發送紀錄會同步寫入 Directus 的 csms_reminder_log

有填:訊息開頭為「林佳茵老師,老師您好:…」;不填:直接「老師您好:…」開始。

CS
CSMS Bot · Google Chat

⬆️ 這就是會送進對應聊天室的訊息內容(Space ID 由身分證字號查表決定)。

📘 API 使用說明

端點

POST /reminder/send
Content-Type: application/json

請求參數 (Body)

欄位 型別 必填 說明
remind_type String 六大條件代碼之一
case_id_number String 個案身分證字號(用於對照 Space ID)
teacher_name String 老師姓名。有填:「林佳茵老師,老師您好:…」;不填:直接「老師您好:…」開始
event_date String 相關日期,例如 115/04/08

六大條件代碼

代碼 情境
RECORD_TEMP服務紀錄:暫存提醒
RECORD_NG服務紀錄:退件提醒
VISIT_CONFIRM下次訪視日期:確認/催辦
PLAN_EXPIRE計畫期程:到期提醒(提前 2 週)
CLOSE_REPORT_AUTO結案報告:催繳提醒
CLOSE_REPORT_MANUAL提前結案報告:催繳提醒

curl 範例

curl -X POST https://<your-host>/reminder/send \
  -H "Content-Type: application/json" \
  -d '{
    "remind_type": "VISIT_CONFIRM",
    "case_id_number": "A123456789",
    "teacher_name": "林佳茵",
    "event_date": "115/04/08"
  }'

成功回應 (HTTP 200)

{
  "success": true,
  "data": {
    "remind_type": "VISIT_CONFIRM",
    "space_id": "AAQA...",
    "message_text": "林佳茵老師,老師您好:...",
    "log_id": "a5306ec3-5526-...",
    "waited_ms": 0,
    "sent_at": "2026-05-05T07:56:11.767Z"
  }
}

錯誤回應

HTTP 情境 範例 error 訊息
400 參數驗證失敗 remind_type must be one of: ...
404 csms_client 找不到對應 case_id_number(同時會寫一筆 success=false 的 log) case_id_number not found in csms_client: ...
200 + success:false Google Chat 發送失敗(如 bot 被踢出聊天室)— 本身請求處理正常,只是 Google Chat 拒收 Google Chat API PERMISSION_DENIED 403: ...
502 Directus 連線失敗(連 log 都寫不進去) failed to query directus...

處理邏輯

  1. 驗證必填欄位與 remind_type 是否為合法代碼。
  2. remind_type 渲染模板:有 teacher_name 時開頭為「{teacher_name}老師,老師您好:…」;沒有時直接「老師您好:…」開始。
  3. 從 Directus 的 csms_clientclient_identity = case_id_numbergoogle_chat_room_id;找不到 → 寫一筆 success=false 的 log 後回 404。
  4. 進入序列化佇列,與前一筆間隔 ≥ 1 秒後送至 Google Chat。
  5. Google Chat 失敗(bot 被踢、API error 等)→ success=falseerror_message 記錄原因。
  6. 無論成功或失敗,都寫一筆紀錄到 Directus 的 csms_reminder_log
  7. 等實際發送完成後才回 response(同步模式)。