ChatworkからSlackに転送した際に#generalに大量のログが転送されてしまったため、Google Apps Script(GAS)を使って一括削除しました。
旧コードはそのまま実行できません
2026年10月24日に公式資料と旧コード2件を読み直しました。レガシーテスタートークンは新規発行できず、旧コードのchannels.list・channels.historyは2021年2月24日に廃止されたAPIです。トークンだけを交換して使えるコードではありません。現在のアプリでは、必要な権限を設定し、Conversations APIへの移行が必要です。
また、chat.deleteメソッドの公式の仕様では、ユーザートークンは、そのユーザーがSlack上で自分で削除できるメッセージに限られ、Botトークンは、そのBotが投稿したメッセージだけを削除できます。他の人の投稿を、すべて削除できるとは限りません。
以下は過去の実装記録です。旧コードは一覧のページ送り、削除応答のok判定、429への待機処理、対象の事前確認がなく、全件処理を保証できません。現行APIで動作する一括削除ツールは本稿では提供していません。
過去に使ったGASコードと現在の制約
当時参照した記事とコードを資料として残します。旧APIを使うため、現在の実行手順には使わないでください。

旧コードの参照先
旧コードはトークンをURLのクエリに付けています。現在の実装では秘密情報をURLや公開コードへ書かず、認証ヘッダーと適切な保管場所を使います。
レガシートークンの公式案内は移行の説明です。旧トークンを新規発行するページではありません。
削除を検討するときの確認順序
必要な記録を残し、対象と権限を確認します。chat.deleteはメッセージ1件を指定するAPIで、チャンネル全体を無条件に消せるものではありません。
- まず、削除する理由と対象を確認する。記事の筆者は、ChatworkからSlackに転送したときに、#generalに大量のログが転送されたため、一括削除した。
- 削除してよいチャンネルか、ワークスペースの管理者などの許可を得ているかを確認する。他の人の投稿や、必要な記録が含まれていないかも確認する。
- 動作テストは、既存の重要なチャンネルではなく、テスト専用のチャンネルを作成して行う。
- トークンは、Slackアプリを作成し、ワークスペースにインストールして、必要なスコープ(chat:writeなど)を付けたものを使う。トークンは、パスワードと同じように扱い、他の人と共有したり、公開のリポジトリに置いたりしない。
- 削除できる範囲を確認する。ユーザートークンは、自分で削除できるメッセージ、Botトークンは、そのBotが投稿したメッセージだけが対象になる。権限がないメッセージは、エラー(cant_delete_messageなど)になる。
- 対象チャンネルID、投稿者、日時、メッセージIDを一覧で確定し、必要な記録を保存する。APIごとの制限とエラーを確認し、無期限の反復トリガーで削除しない。
迷ったときは、削除を実行せず、ワークスペースの管理者に相談してください。
件数が多い場合の注意点と運用のコツ
旧コードを1分おきに繰り返しても、廃止APIや権限不足は解消しません。定期実行の設定は行わず、まず取得範囲と失敗理由を確認します。
現行のconversations.historyにはページ送りと取得権限の条件があります。スレッド返信も含めた対象範囲を別途確認し、取得できた一覧だけで全件と判断しないでください。
保存期間の運用は、独自の削除スクリプトを定期実行する前に、管理者がSlackのデータ保持設定と契約プランを確認してください。保持設定による削除も元には戻せません。
なお、動作テストを行う際は既存の重要チャンネルではなく、テスト専用チャンネルを作成して検証することをおすすめします。

ChatworkやSlackへ通知を送る方法は、ほかにもあります。



よくある質問:Slackの投稿を一括削除するときのチェックリスト
Slackのチャンネルの投稿を、すべて削除できますか?
chat.deleteメソッドの公式の仕様では、ユーザートークンは、そのユーザーが自分で削除できるメッセージに限られ、Botトークンは、そのBotが投稿したメッセージだけが対象です。権限がないメッセージは、cant_delete_messageなどのエラーになります。他の人の投稿を、すべて削除できるとは限りません。
レガシートークンは、今も発行できますか?
Slackの公式ドキュメント(2026年10月12日確認)では、レガシーのテスタートークンは新規に作成できないと案内されています。推奨されているのは、Slackアプリを作成して、ワークスペースにインストールする方法です。
削除は、元に戻せますか?
Slack公式ヘルプではメッセージ削除は恒久的と説明されています。削除後の復元を前提にせず、実行前に対象と保存すべき記録を確認してください。
テストは、どこで行いますか?
既存の重要なチャンネルではなく、テスト専用のチャンネルを作成して行います。記事の筆者も、この方法をすすめています。
1回で、削除しきれないときは?
自動反復する前に、取得範囲・権限・API応答を確認します。chat.deleteはTier 3ですが、履歴取得の制限とは別です。429が返ったらRetry-Afterに従う設計が必要です。旧コードにはこの処理がありません。
トークンは、どう扱いますか?
パスワードと同じように扱い、他の人と共有したり、公開のリポジトリに置いたりしないでください。記事のコードを使う場合も、スクリプトの中のトークンを、公開しないよう注意します。
