跳到內容

如何統一處理不同平台的 Reaction

開發機器人時,處理訊息反應(Reaction)通常很煩人。每個平台都有自己的 API 規則,有的要傳 Emoji 字串,有的要傳特定 ID。當你想讓 Bot 在不同平台表現一致時,往往得寫一堆判斷式來處理這些差異。

這套工具提供了一套通用的邏輯,讓你用同樣的參數就能搞定各個頻道的 Reaction。

  • 支援 Reaction 功能的 Channel(如 Discord, Slack, Google Chat, Telegram, WhatsApp 或 Signal)

要在訊息中新增或移除 Reaction,你只需要掌握以下兩個核心參數:

  • 新增 Reaction:emoji 是必填項。
  • 移除 Reaction:
    • 將 emoji 設為空字串 "" 可以移除 Bot 的反應。
    • 設定 remove: true 並指定 emoji 則可以移除特定的反應。

不同平台在處理「移除」動作時有些微的行為差異,開發時請參考以下說明:

  • Discord, Slack 與 Google Chat

    • 使用 emoji="" 會移除 Bot 在該訊息上的「所有」反應。
    • 使用 remove: true 則只會移除你指定的那個 Emoji。
  • Telegram

    • 使用 emoji="" 會移除 Bot 的反應。
    • 若使用 remove: true 同樣會移除反應,但你依然需要提供一個非空的 emoji 內容,否則無法通過工具驗證。
  • WhatsApp

    • emoji="" 會移除 Bot 的反應。
    • remove: true 在此平台會直接對應到空字串的邏輯。
  • Signal

    • 如果你需要接收 Reaction 的通知,請確保在設定中開啟了 channels.signal.reactionNotifications,這樣系統才會發送事件。

如果你在設定過程中遇到任何問題,可以直接詢問 AI Setup Assistant。

OpenClaw

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。