複数チャネルでの Reaction 操作を共通化する方法
チャットボットを開発していると、プラットフォームごとに Reaction の仕様が異なり、コードが複雑になりがちです。ある API では Reaction の追加と削除でエンドポイントが分かれていたり、別の API では特殊な値を送る必要があったりと、共通のロジックを維持するのは簡単ではありません。
複数のチャネルをまたいで Reaction を制御する場合、共通のセマンティクスを理解しておくことが効率的な開発の近道です。
- サポートされているチャネル(Discord, Slack, Google Chat, Telegram, WhatsApp, Signal)の利用環境
- 各チャネルでの Reaction 操作権限
クイックスタート
Section titled “クイックスタート”共通のセマンティクスを使用して、5 分で Reaction 操作を整理しましょう。以下の 4 つのルールに従うのがベストです。
- Reaction を追加する
emojiパラメータが必須です。追加したい絵文字を指定してください。 - すべての Reaction を削除する
emoji=""(空文字列)を指定すると、サポートされているチャネルで Bot の Reaction を削除できます。 - 特定の Reaction のみを削除する
remove: trueを指定します。この際、削除対象となるemojiも併せて指定する必要があります。 - バリデーションを維持する
Telegram や WhatsApp のように、削除操作であっても空ではない
emojiパラメータを必要とするチャネルがある点に注意してください。
トラブルシューティング
Section titled “トラブルシューティング”チャネルごとに挙動が少しずつ異なるため、実装時に問題が発生した場合は以下を確認してください。
- Discord / Slack / Google Chat
emoji=""を送ると、そのメッセージ上の Bot の Reaction がすべて削除されます。特定の絵文字だけを消したい場合は、必ずremove: trueを使用してください。 - Telegram
emoji=""で Bot の Reaction を削除可能です。ただし、remove: trueを使用して削除する場合でも、ツール側のバリデーションを通すために空ではないemojiを指定する必要があります。 - WhatsApp
remove: trueは内部的に空のemojiとしてマッピングされます。このチャネルでもemojiの指定は必須です。 - Signal
Reaction の通知を受け取りたい場合は、
channels.signal.reactionNotificationsを有効にしてください。これにより、インバウンドの Reaction 通知がシステムイベントとして発行されます。
設定や実装で困ったときは、AI Setup Assistant で質問してみてください。
次のステップ
Section titled “次のステップ”- Channel Configuration Guide
- API Reference Guide
OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。