24
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

無料版Slackのメッセージが90日で消えちゃうらしいのでDiscordにメッセージを移行させるツール作った

Last updated at Posted at 2022-07-29

2022/08/28追記


↓の記事からリンクされていることに気づきました。

こちらはCLIですが、よりリッチにメッセージの移行ができるみたいなので、CLIでもいける!という方はこっち使ったほうがいいかもです!(まあこの記事もCLIいけないとだめですが)


Discordのbotでも移行できるようにしてみました。
興味ある方は以下の記事を見てみてください。


数年ぶりの投稿です。

背景

自分は、無料版のSlackをメモ帳代わりに使っていて、気になる記事のURLや思いついたことなどを自分のワークスペースにメモっていました。

が、先日以下のような発表がなされまして、これだと今までのメモが消えてしまう、新しくメモっても90日で消えてしまう、と思い、今までのメモを移行しようと思いました。

移行先として色々検討して、慣れてるしUIもいいし無難にDiscordが良さそうだと思い、Discordに移行させることにしました。

ただ、全部コピペは面倒だし、Slackのエクスポート機能も微妙的なこと書いてある記事があったので、せっかくならプログラム書いて移行させようかと思いました。

作ったもの

これです。

Typescript x Next.js x Discord.js x Node Slack SDK x Chakra UIで作っています。

画面は超シンプルなこんな感じ。

image.png

どこにもホスティングしたりしていない&するつもりもないので、もし使いたい方がいたらgit cloneしてyarn devして使ってください。

※本当はSPAで作ってどっかにホスティングしてやろうと思ったのですが、slackのSDKがNode.jsに依存しているせいでブラウザ上で動かせず、さらにWEB APIもブラウザから実行するとCORSエラーになっちゃうので諦めたという経緯があります。SlackとかDiscordのトークンを入力してもらう前提の実装なので、それらのセキュアな情報を自分の立てたサーバーを経由させるの良くないよなーと思い、ホスティングするのはやめた感じです。

使い方

雑な使い方も書いておきます。

SlackでAppを作成する

ここらへんの記事とかを参考に作成してください。

このとき、

にあるScopeを有効にするようにしておいてください。

このSlack AppのOauth Tokenは後で必要になるので控えておきます。

作ったSlack Appを移行したいSlackのチャンネルに参加させておく

チャンネル内で、 @作成したApp名 とすれば召喚できます。

DiscordでBotを作る

これはここらへんの記事を見ればよくわかります。

BOT PERMISSIONSの設定では、Manage Channels Send Messages のチェックが必要になります。

このBotのトークンはあとで必要になるので控えておきます。

移行先DiscordサーバーのIDを控えておく

以下を参考にIDを控えます。

ローカルで起動

以下のようにコマンドを実行し、ローカルでプログラムを起動します。

git clone https://github.com/yuki-noguchi/slack-message-transfer.git
cd slack-message-transfer
yarn install
yarn dev

ブラウザに移動し、入力項目を埋める

ブラウザから以下のURLにアクセスします。

以下のような画面が表示されるので、前の手順で控えたそれぞれの値を入力します。

image.png

それぞれ入力したら、取得するボタンをクリックします。

すると、以下のような感じでslackチャンネルの一覧が表示されます。

image.png

移行を行いたいチャンネルをクリックして表示されるモーダルで、移行するボタンをクリックすると、Dicord側のSlackのチャンネルと同名のチャンネルが作成され、メッセージの移行が実行されます。

補足など

バリデーションもしていなければエラーハンドリングもしていない、ワイルド仕様なので、もしなんか動かんってなったらよしなにデバッグをお願いします。

SlackとDiscordのBotを作る過程が割と面倒で、パーミッション周りが実は設定されていなかったみたいなことが起こりがちだと思うので、なんかエラーになったらそこらへん見てもらうと良いかと思います。

あと、メッセージ以外は移行を行うことができません。スレッドの移行とか、リアクションとかはできないです。

感想

ちゃんと移行できて大満足。

画面作ってSlackとかDiscordのAPIを呼ぶと、なんかアプリ作ってるライブ感みたいなのが出ていいですね。

24
12
12

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?