Misskeyの通知をWebhookでDiscordに送り付ける
Webhook、使ってます?
MisskeyではWebhookというものが使えまして、特定のタイミングで指定したURLにリクエストを送り付けてくれます。
例えば、Misskeyでノートした時に別の場所でも同じ内容を投稿したり~みたいな事も、Webhookを使ってごにょごにょすれば実現できます。
今回はMisskeyのWebhookを使って、
- フォローされたとき
- リノートされたとき
- 返信されたとき
- メンションされたとき
にDiscord側で通知が届く仕組みを作ります。
- Misskey
- Discord
- Cloudflare
のアカウントを所持している前提で進めていきます。あらかじめ作成しておくように!
かんたん 5ステップ
1. DiscordのWebhookを用意
Discordの説明に関しては結構ざっくりしてます。ごめんなさい。
お好きなサーバーのチャンネルに行き、チャンネルの編集から連携サービスをクリック。
ウェブフックを作成をクリックすると、ウェブフックが作成されます。

ウェブフックURLをコピーをクリックすると、URLがコピーされます。後で使うので大事に保存してください。
2. Cloudflare Workersの作成
Cloudflare Workersとは、サーバーレス・エッジコンピューティングサービスです。
…何言ってんだよ!!となりますが、要は自分でサーバーを用意せずにCloudflareのサーバーで簡単な処理を動かせるサービスです。
しかも処理は常に最速の位置で行われます。日本だろうがアメリカだろうが、常に爆速です。
使い方は超簡単です。やってみましょう💪
CloudflareのダッシュボードからWorkers & Pagesを選択します。

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

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

お好きな名前を付けて、デプロイをクリック!!!!!!!!
あ!ワーカーのドメインをメモしておくように!(ちっちゃく出てるやつ)

これで、作成した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に拒否られます)
完成!
試しに邪魔にならない場所で自分自身にメンションしたり、藍からフォローを貰ったりしてみてください。

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