Slackのメッセージをバックアップ
Slackにおける自分が閲覧できる範囲のチャンネルやDMをJSON形式でダウンロードできる、slack-dumpというソフトウェアがあります。 フォーク履歴 を見ると、初出は2015年、その後たくさんフォークされてそれぞれ改良が加えられています。
2021年になり、slack-dumpで使っているSlackのAPIに大きな変更がありました。 この変更に追従できていないリポジトリは多く、slack-dumpが使えない状況となっていました。 というわけで、私のほうでフォークして、APIに合わせて大幅に書き換え、2021年現在最新の状態にしました!
こちらがリポジトリです。
安全性が心配でしたら、すべての処理がmain.go
に書かれていますのでご確認ください。
とはいっても、SlackのAPIと実際に通信するパッケージのメソッドを呼んでデータを持ってきて、ファイルに書き込んで圧縮ファイルを作るだけですが…
リリースページ から実行ファイルをダウンロードできます。
実行方法
実行方法はリポジトリのREADME.mdに書かれていますが、こちらでも紹介します。
Tokenの取得
まずはSlackのAPIを使うためにTokenを取得します。 Tokenはワークスペースに導入するアプリを作成することで生成できます。
https://api.slack.com/ にアクセスし、「Create an app」をクリックします。
![APIのポータルページ](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137989/Blog-personal/slack_dump/1.png)
以下の画面が表示された場合は「Create an app」をクリックします。
![所有アプリ一覧画面](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633138557/Blog-personal/slack_dump/2.png)
「From scratch」をクリックします。
![アプリ作成画面](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137989/Blog-personal/slack_dump/3.png)
アプリ名と、どのワークスペースに導入するかを指定します。アプリ名は何でもよく、ワークスペースはバックアップしたいワークスペースを選んでください。
![アプリ名と導入するワークスペースの指定画面](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137989/Blog-personal/slack_dump/4.png)
左側にある「Oauth & Permissions」をクリックします。
![サイドバーに「Oauth & Permissions」がある](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137988/Blog-personal/slack_dump/5.png)
スクロールしていくと、以下の画面になります。
![スコープの設定画面](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137989/Blog-personal/slack_dump/6.png)
「User Token Scopes」の欄に以下のスコープを追加します。
- channels:read
- channels:history
- groups:read
- groups:history
- im:read
- im:history
- mpim:read
- mpim:history
- users:read
![スコープを設定後](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137988/Blog-personal/slack_dump/7.png)
ページの上部に戻り、「Install to Workspace」をクリックします。
![アプリのインストール](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137988/Blog-personal/slack_dump/8.png)
許可を求められるので、「Allow」をクリックして許可します。
![権限の許可を求める画面](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137988/Blog-personal/slack_dump/9.png)
Tokenが表示されます。これはプログラムで使うので、コピーしておいてください。
![Tokenの表示画面](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633141666/Blog-personal/slack_dump/10.png)
Macで実行
Macでの実行方法を説明します。 まず、GitHubからダウンロードしてきただけでは実行権限がないので、以下のコマンドで実行権限を付与します。
[ファイル名]
のところは実際のファイル名(例:slack-dump_1.3.0_Darwin_x86_64)にしてください。
chmod +x [ファイル名]
実行します。
./[ファイル名]
Appleの公証を受けていないため実行をブロックされます。このプログラムを使いたい場合は「キャンセル」をクリックします。
![slack-dumpの実行ブロック画面](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633138566/Blog-personal/slack_dump/mac1.png)
このプログラムを信頼していただけるなら、実行をブロックされたあとに「システム環境設定」→「セキュリティとプライバシー」→「一般」の画面から実行を許可できます。
![システム環境設定の「セキュリティとプライバシー」の画面](https://res.cloudinary.com/tsukayaku/image/upload/f_auto,q_auto,c_limit,w_600/v1633137989/Blog-personal/slack_dump/mac2.png)
おわり
大事な会話・消えては困る会話がたくさんある時に、JSON形式で見づらいですが手元に残せますので、ぜひご利用ください。