← 所有文章
教學

如何在群組聊天中傳送 Telegram 暫時性機器人訊息

Telegram 機器人現在可以在群組或超級群組中傳送只有指定使用者與機器人本身看得到的暫時性訊息。一般機器人必須在符合條件的回呼或暫時性訊息觸發後 15 秒內回覆;群組管理員機器人則可隨時向任何非機器人成員發起這類訊息。訊息不保證送達,收件者離線時尤其如此。

重點摘要

  • Bot API 10.2 在 2026 年 7 月 14 日推出了只讓單一使用者看見的機器人訊息與暫時性指令。
  • 如果使用者送出的指令不應讓其他成員與機器人看見,請將該指令的 is_ephemeral 欄位設為 true
  • 非管理員機器人需要近期的 callback_query_idreply_parameters.ephemeral_message_id,而且回覆時限只有 15 秒。
  • 管理員機器人不需要上述觸發識別碼,即可向任何非機器人成員發起訊息,但送達仍採盡力而為。
  • 暫時性訊息適合用作介面回饋,不是持久稽核紀錄,也不是跨平台訊息類型。

什麼是 Telegram 暫時性機器人訊息?

暫時性機器人訊息是一種顯示在群組或超級群組時間軸中的私密回覆,只有一位使用者能看見,其他群組成員與其他機器人都看不到。Telegram 列出的合適場景包括歡迎訊息、私密 AI 摘要、錯誤提示、確認訊息、情境提示與按鈕選單。

它不同於 Telegram Guest Mode。Guest Mode 決定機器人尚未加入聊天時如何被叫用;暫時性訊息則決定特定指令或機器人回覆能讓誰看見。它也不同於 Bot API 10.1 富文字訊息,後者改變的是格式,而非可見範圍。

Telegram 表示,這類互動可能會在一段時間後或應用程式重新啟動時自動消失。官方文件沒有公布固定的存在時間,因此不要把畫面上看得到的訊息當成核准、付款狀態、客服決策或其他持久業務事件的唯一紀錄。

哪些機器人可以在群組中傳送私密回覆?

這裡有兩條權限路徑。設計處理程式前應先選定路徑,因為它們要求的識別碼與送達行為並不相同。

機器人情境何時可以傳送必要的觸發資料送達範圍
任何機器人在符合條件的傳入動作發生後 15 秒內callback_query_idreply_parameters.ephemeral_message_id觸發該動作的用戶端應用程式
群組管理員機器人可隨時向非機器人成員傳送不需要任何一個觸發識別碼可能送達多個使用中的用戶端,但不保證送達

兩條路徑都使用 receiver_user_id 指定檢視者。傳出的暫時性訊息僅限群組與超級群組,不能取代私訊對話。

送達限制非常重要:Telegram 明確說明訊息不保證被接收,使用者離線時尤其如此。應把它設計為方便的介面回饋。如果動作會變更伺服器狀態,請先將該狀態持久化,並讓使用者稍後能再次取得。

步驟 1:宣告暫時性指令

呼叫 setMyCommands,並將需要保持私密的指令的 is_ephemeral 設為 true。以下假設範例會讓使用者的 /summary 要求對其他所有群組成員與機器人保持隱藏:

curl "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/setMyCommands" \
  -H "Content-Type: application/json" \
  -d '{
    "commands": [
      {
        "command": "summary",
        "description": "Summarize this discussion for me",
        "is_ephemeral": true
      }
    ],
    "scope": {
      "type": "all_group_chats"
    }
  }'

is_ephemeral 影響的是使用者送出的指令。只設定這個欄位,並不能為之後的每一則機器人訊息選擇收件者。傳送要求仍需包含正確的聊天、檢視者,以及符合條件的觸發資訊——除非機器人是管理員。

步驟 2:傳送私密群組回覆

針對由回呼觸發的回覆,請呼叫支援的傳送方法,並傳入 chat_idreceiver_user_idcallback_query_id。Bot API 10.2 為 sendMessage 以及支援的媒體、檔案、聯絡人與位置方法新增了這兩個暫時性訊息參數。

以下假設要求會向超級群組中的一位成員傳送確認訊息:

curl "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": -1001234567890,
    "receiver_user_id": 424242424,
    "callback_query_id": "4382bfdwdsb323b2d9",
    "text": "Your report is ready. Only you can see this confirmation."
  }'

請在 15 秒時限內送出要求。如果觸發來源是傳入的暫時性訊息,而不是回呼查詢,請改用 reply_parameters.ephemeral_message_id 回覆。不要改成一般的 message_id;Bot API 10.2 特別規定,暫時性識別碼存在時可以省略 message_id

如果管理員機器人要在沒有近期動作的情況下主動發送訊息,可以省略 callback_query_id 與暫時性訊息回覆目標,但仍須提供群組的 chat_id 以及該非機器人成員的 receiver_user_id

步驟 3:使用暫時性訊息識別碼編輯或刪除

將 Telegram Message 物件傳回的 ephemeral_message_idchat_idreceiver_user_id 一起儲存。一般的編輯與刪除方法不適用於這類訊息的生命週期管理。

請使用以下專用方法:

  • editEphemeralMessageText
  • editEphemeralMessageMedia
  • editEphemeralMessageCaption
  • editEphemeralMessageReplyMarkup
  • deleteEphemeralMessage

例如,編輯文字需要提供三個身分欄位:

{
  "chat_id": -1001234567890,
  "receiver_user_id": 424242424,
  "ephemeral_message_id": 781,
  "text": "The report is ready to download."
}

Telegram 也提醒,編輯與刪除事件可能無法送達離線使用者。應把生命週期呼叫視為盡力而為的介面更新,而不能把它當成某人已經看見——或已經無法繼續看見——敏感資訊的證明。

實作檢查清單

  1. 先判斷回覆類型。 暫時性訊息適合必須出現在群組情境中的個人回饋,不適合團隊必須保留的紀錄。
  2. 立即擷取觸發資訊。 只在符合 15 秒路徑所需的時間內保留 callback_query_id 或傳入的 ephemeral_message_id
  3. 在伺服器端完成授權。 內容隱藏不代表已經授權。產生摘要、選單或執行動作前,應驗證呼叫者是否有權提出該要求。
  4. 分開持久化長期狀態。 在介面中確認前,先把核准、工作狀態與客服動作儲存到自己的資料庫。
  5. 使用專用生命週期方法。chat_idreceiver_user_idephemeral_message_id 當成一組查詢資料儲存,用於編輯與刪除。
  6. 為未送達情況預先設計。 如果使用者必須能找回結果,請提供一般私訊、控制台或重試路徑。
  7. 測試不同角色與用戶端。 涵蓋一般機器人、管理員機器人、群組與超級群組、多個使用中的裝置,以及離線收件者。

UnifyPort 適合哪些情境,又不適合哪些情境

Telegram 暫時性訊息是 Telegram Bot API 的功能。目前 UnifyPort API Reference 並未說明 POST /v1/messages 支援 receiver_user_idcallback_query_id,或暫時性訊息的編輯與刪除方法。如果產品仰賴群組內只讓單一使用者看見的介面,請使用 Telegram 官方 Bot API。

UnifyPort 解決的是另一個層次的問題:來自已支援帳號的一般傳入訊息可以統一成為標準化的 message.received 事件,支援的標準回覆則透過同一個訊息 API 跨服務提供者傳送。當團隊需要一個涵蓋 Telegram、WhatsApp、LINE、Zalo、TikTok 與 X 的持久佇列時,這種方式更有幫助。它不會把其他平台的訊息變成 Telegram 暫時性回覆,也不會保留 Telegram 專屬的可見性語意。

如果真正的需求是多管道客服,而非只面向 Telegram 的機器人介面,請參閱跨管道 Telegram 自動化指南了解架構邊界。

限制與取捨

如果機器人必須在不讓使用者離開群組的情況下顯示私密確認、錯誤、選單或摘要,請選擇 Bot API 的官方功能。它在 Telegram 用戶端提供原生的單一使用者可見性,除了文字外,也支援多種媒體與工具類訊息。

如果情境要求警示保證送達、法規遵循紀錄、持久客服歷程,或機密資訊必須能可靠撤回,就不要採用暫時性訊息。離線使用者不一定能收到訊息、編輯或刪除事件;訊息本身可能消失;官方文件也沒有承諾固定的存在時間。非官方介面無法改變這些平台保證,也不能為其他管道增加 Telegram 的暫時性訊息功能。

常見問題

Telegram 機器人能傳送只有一位群組成員看得到的訊息嗎?

可以。在群組或超級群組中提供 receiver_user_id,並符合 15 秒內的有效觸發路徑或群組管理員路徑。只有指定使用者與機器人能看見這則暫時性訊息。

機器人必須是群組管理員嗎?

不一定。任何機器人只要擁有相關的 callback_query_id 或傳入暫時性回覆識別碼,就能在 15 秒內回應。管理員機器人不需要這些觸發識別碼,即可主動向任何非機器人成員傳送暫時性訊息。

Telegram 暫時性機器人訊息會保留多久?

Telegram 沒有公布固定時間。其文件表示,這類互動可能在一段時間後或應用程式重新啟動時自動消失,因此應用程式不應把它當成持久儲存空間。

離線使用者能收到暫時性訊息嗎?

不保證送達,使用者離線時尤其如此。編輯與刪除事件也有同樣限制。對於重要結果,請提供可恢復的取得路徑。

暫時性訊息與 Telegram Guest Mode 相同嗎?

不同。Guest Mode 控制機器人如何在未加入聊天時參與其中;暫時性訊息控制群組內特定指令或回覆的可見範圍。兩項功能可以搭配使用,但解決的是不同問題。

下一步

請依據 Telegram 官方 Bot API 暫時性訊息參考文件實作 Telegram 專用路徑。如果工作流程的其他部分需要跨多個服務提供者持久處理訊息,請先查看 UnifyPort 服務提供者訊息支援矩陣,再設計共用處理程式。

來源

官方來源核對日期:2026 年 7 月 20 日。