SlackDeleteコンポーネントを使うと、Slackに投稿したメッセージを削除することができます。会話から手動でメッセージを選択して削除する代わりに、SlackDeleteコンポーネントを使ってこれらの手順を自動化できます。
この記事では、SlackGetコンポーネントで選択したメッセージをSlackDeleteコンポーネントで削除します。
メッセージを削除するシナリオ
まず、削除したいメッセージの送信者を確認します。
- ワークスペースのオーナーユーザー、または管理ユーザーは、任意のユーザーのメッセージを削除できます。
- ユーザーは自分のメッセージを削除できます。
- botは自分のメッセージを削除できます。※botとは、Slack内の「アプリ」をbot(ボット)と呼ばれる仮想のアカウントとしてチャンネルに追加したものです。
この記事では、botを利用して投稿したメッセージを削除するフローを紹介します。ユーザーのメッセージを削除する場合も、Slackコネクションを作成する際にユーザーアカウントで接続すると、すべて同じ手順で実行できます。
[準備]Slackコネクションの作成
Slackのチャンネルやダイレクトメッセージに接続するためには、事前にSlackコネクションを作成しておく必要があります。一度作成すれば、それを複数の箇所で再利用できます。
Slackコネクションの詳細な設定方法や、接続に必要なAPIトークンを取得するための手順については、Slackコネクションの作成を参照してください。
チャンネルからbotが投稿したメッセージを削除する
チャンネルに送信したメッセージを削除するには、SlackGetコンポーネントの後にSlackDeleteコンポーネントを追加します。以下に基本的なフローと、フローの設定方法を示します。チャンネルからbotが投稿したすべてのメッセージを削除するのが最も簡単な手順です。
-
削除したいメッセージを選択するため、SlackGetコンポーネントを追加します。
すべてのコンポーネントプロパティを空白のままにすると、SlackGetコンポーネントは、botがチャンネルに送信したすべてのメッセージとスレッド内のリプライを取得します。
-
Mapperコンポーネントを追加し、次にSlackDeleteコンポーネントを追加します。
-
Mapperコンポーネントをダブルクリックし、Timestampフィールドをマッピングします。
フローを実行すると、チャンネルからbotが投稿したすべてのメッセージが削除されます。コンポーネントは、削除された各メッセージに対応するレコードをレコードストリームに出力します。ストリームの内容は次のようになっており、IsSuccessフィールドを確認することで削除が成功したかどうかを把握できます。
IsSuccess | true |
Timestamp | 1658794990.079489 |
このフローを拡張すれば、削除したいメッセージだけを削除できます。例えば、30日以上前のすべてのメッセージを削除するには、SlackGetコンポーネントで日付範囲にフィルターをかけます。「これより前」プロパティを30日前に設定します。
ユーザーIDでフィルタリングするなど、日付範囲以外のフィルタリングを実施したい場合は、SlackGetコンポーネントの後にRecordFilterコンポーネントを追加することで設定できます。