Misskeyの通知をWebhookでDiscordに送り付ける


Webhook、使ってます?

MisskeyではWebhookというものが使えまして、特定のタイミングで指定したURLにリクエストを送り付けてくれます。

例えば、Misskeyでノートした時に別の場所でも同じ内容を投稿したり~みたいな事も、Webhookを使ってごにょごにょすれば実現できます。

今回はMisskeyのWebhookを使って、

  • フォローされたとき
  • リノートされたとき
  • 返信されたとき
  • メンションされたとき

にDiscord側で通知が届く仕組みを作ります。

  • Misskey
  • Discord
  • Cloudflare

のアカウントを所持している前提で進めていきます。あらかじめ作成しておくように!

かんたん 5ステップ

1. DiscordのWebhookを用意

Discordの説明に関しては結構ざっくりしてます。ごめんなさい。

お好きなサーバーのチャンネルに行き、チャンネルの編集から連携サービスをクリック。

ウェブフックを作成をクリックすると、ウェブフックが作成されます。

webhook、作れてるね

ウェブフックURLをコピーをクリックすると、URLがコピーされます。後で使うので大事に保存してください。

2. Cloudflare Workersの作成

Cloudflare Workersとは、サーバーレス・エッジコンピューティングサービスです。

…何言ってんだよ!!となりますが、要は自分でサーバーを用意せずにCloudflareのサーバーで簡単な処理を動かせるサービスです。

しかも処理は常に最速の位置で行われます。日本だろうがアメリカだろうが、常に爆速です。

使い方は超簡単です。やってみましょう💪

CloudflareのダッシュボードからWorkers & Pagesを選択します。

cfのダッシュボードだよ!!!

アプリケーションの作成を選択します。

はろーわーるど!!

ワーカーの作成を選択しましょう。まだコードは編集できません。

えーすごーい

お好きな名前を付けて、デプロイをクリック!!!!!!!!

あ!ワーカーのドメインをメモしておくように!(ちっちゃく出てるやつ)

世界にあなたを反映

これで、作成したWorkerがデプロイされました。

3. 環境変数を設定する

ワーカーの構成をクリックして、設定 > 変数の順に進みます。

環境変数という項目があるはずです。変数を追加するを押して、

DISCORD = さっきコピーしたWebhookのURL
SECRET = 他人に推測されない適当な文字列

のように入力してください。

大事な変数

保存してデプロイするを押して、完了!

4. Workersにコードをぶちこむ

コードの編集を押して、コードを編集していきましょう。

エディタが開きます。Hello Worldのコードは使わないのでさっさと消しましょう。

Githubでコードを公開してあります。

コピペして使ってください。(改造しても構いません。)

ブログに貼ってもよかったのですが、コードが長いので…

…あ!6行目付近の

//DiscordのユーザーID
const discordid = '1063527758292070591'

は自分のDiscordのユーザーIDに置き換えてください。

やり方がわからない場合はGoogle先生へ…

できた

okay! 保存してデプロイするをクリックして反映しましょう!

デプロイしなさい

保存してデプロイするのボタンがグレーになって押せなくなったら、デプロイ完了です。

5. Misskeyに設定!

最初の画像だけ関西弁だけどゆるして。。

からっぽ

Webhookを作成(つくる)ボタンを押します。

つくるよ

このように作成してください:

名前: なんでもいい
URL: https://さっきデプロイしたWorkersのドメイン/
シークレット: さっき設定したシークレット

タイミング:
* フォローされたとき
* 返信されたとき
* Renoteされたとき
* メンションされたとき

タイミングの部分は、必要のないものがあればオフにして構いません。

まじでめんどくせぇという人はデフォルト(全てONの状態)でも構いません。(特定のタイプ以外はWorkersに拒否られます)

完成!

試しに邪魔にならない場所で自分自身にメンションしたり、からフォローを貰ったりしてみてください。

うごいたよ!

このように動いていれば成功です!!!お疲れ様でした!!!

おわり!