14
9

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からDiscordへメッセージを移行させるDiscord botを作った

Last updated at Posted at 2022-08-27

2022/08/29追記

dicordに送信できる最大文字数 < slackに送信できる最大文字数
みたいなので、slack側の文字数が多い場合には分割して送るようにしました。


先月に↓の記事を投稿したのですが、

我ながら使いづらいなと思ったのと、思ったよりも使っている人がいて、わかりずらそうだったので、なんかもっとイケてる感じにしたいなと思いました。

で、「これ最初からdiscord側のbotにしちゃえばいいんじゃね?」と思い立ち、そうすることにしました。

botは以下からサーバーに追加することができます。

雑な使い方

例のごとく雑に使い方を書いておきます。

slackのデータをエクスポートする

以下を参考に、エクスポートします。

Slackのデータをエクスポートすると、何種類かファイルがエクスポートされます。

その中で必要になるのは、users.jsonファイルと各種チャンネルのjsonファイルになります。

リンクをクリックして、discordのサーバーにbotを追加する

移行したいslackのチャンネルと同じ名前のチャンネルをdiscordに作る

同じじゃなくてもいいですが、合わせておいたほうがわかりやすいとは思います。

移行を行いたいチャンネルに移動し、botにメンションを当ててファイルをアップロードする

移行を行いたいチャンネルにて、以下のように、slackからエクスポートされたファイルの中で、users.jsonファイルと移行するチャンネルのjsonファイルをアップロードします。

@slack-message-transfer-botへのメンションをするのを忘れないようにしてください。

スクリーンショット 2022-08-28 1.01.45.png

しばらくすると徐々にメッセージがそのチャンネルに流れてくるはずです。

※多分ファイルのアップロードの上限とかあると思いますが、そこらへんよくわかってないです。もし無理っぽかったら小分けにしてアップロードしてください。
※zipファイルのままアップロードしてもうごかないです。

使用技術など

以下のリポジトリで開発しています。

typescriptを導入したexpressで作っています。

botはrender.comで無料ホスティングしております。

無料プランなので本当はすぐ寝ちゃうのですが、GASを使って定期的に叩き起こすようにしています。

補足など

Discordのbotは、100個のサーバーに導入されると検証を受けないといけなくなっちゃうらしいので、もし使い終わったらbotはサーバーからキックしていただいたほうが助かります。

また、できるだけ使えるようにメンテはするつもりですが、普通に後回しにしたりすると思うので使えなくてもあしからず。

あと、今回のは一応サーバーを経由するのですが、送られてきた記事の中身は見れるようになっていないのでご安心ください。
Githubの実装の通りでデプロイされています。

もしそこらへん気になる方は、前回書いた記事の方を参照していただいた方が良いかと思います。

あっちはローカルで全部完結するものを作っているので。

感想

render.comってherokuの後継みたいに言われてますが、本当にそんな感じで使い勝手いいですね!こういうbotとか作るのに最適だと思いました。

14
9
1

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
14
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?