Slackのメッセージをバックアップ

Slackにおける自分が閲覧できる範囲のチャンネルやDMをJSON形式でダウンロードできる、slack-dumpというソフトウェアがあります。 フォーク履歴 を見ると、初出は2015年、その後たくさんフォークされてそれぞれ改良が加えられています。

2021年になり、slack-dumpで使っているSlackのAPIに大きな変更がありました。 この変更に追従できていないリポジトリは多く、slack-dumpが使えない状況となっていました。 というわけで、私のほうでフォークして、APIに合わせて大幅に書き換え、2021年現在最新の状態にしました!

こちらがリポジトリです。

GitHub - takameron/slack-dump: Export History For Channel, Private Group and Direct Message From Slack Export History For Channel, Private Group and Direct Message From Slack - takameron/slack-dump github.com

安全性が心配でしたら、すべての処理がmain.goに書かれていますのでご確認ください。 とはいっても、SlackのAPIと実際に通信するパッケージのメソッドを呼んでデータを持ってきて、ファイルに書き込んで圧縮ファイルを作るだけですが…

リリースページ から実行ファイルをダウンロードできます。

実行方法

実行方法はリポジトリのREADME.mdに書かれていますが、こちらでも紹介します。

Tokenの取得

まずはSlackのAPIを使うためにTokenを取得します。 Tokenはワークスペースに導入するアプリを作成することで生成できます。

https://api.slack.com/ にアクセスし、「Create an app」をクリックします。

APIのポータルページ

以下の画面が表示された場合は「Create an app」をクリックします。

所有アプリ一覧画面

「From scratch」をクリックします。

アプリ作成画面

アプリ名と、どのワークスペースに導入するかを指定します。アプリ名は何でもよく、ワークスペースはバックアップしたいワークスペースを選んでください。

アプリ名と、どのワークスペースに導入するかを指定

左側にある「Oauth & Permissions」をクリックします。

権限管理ページに移動

スクロールしていくと、以下の画面になります。

スコープの設定画面

「User Token Scopes」の欄に以下のスコープを追加します。

  • channels:read
  • channels:history
  • groups:read
  • groups:history
  • im:read
  • im:history
  • mpim:read
  • mpim:history
  • users:read
スコープを設定後

ページの上部に戻り、「Install to Workspace」をクリックします。

アプリのインストール

許可を求められるので、「Allow」をクリックして許可します。

権限を許可する

Tokenが表示されます。これはプログラムで使うので、コピーしておいてください。

「User OAuth Token」をコピー

Macで実行

Macでの実行方法を説明します。 まず、GitHubからダウンロードしてきただけでは実行権限がないので、以下のコマンドで実行権限を付与します。

[ファイル名]のところは実際のファイル名(例:slack-dump_1.3.0_Darwin_x86_64)にしてください。

chmod +x [ファイル名]

実行します。

./[ファイル名]

Appleの公証を受けていないため実行をブロックされます。このプログラムを使いたい場合は「キャンセル」をクリックします。

slack-dumpの実行をブロックされた

このプログラムを信頼していただけるなら、実行をブロックされたあとに「システム環境設定」→「セキュリティとプライバシー」→「一般」の画面から実行を許可できます。

実行を許可する

おわり

大事な会話・消えては困る会話がたくさんある時に、JSON形式で見づらいですが手元に残せますので、ぜひご利用ください。