👾

【Discord】ユーザが入室した招待URLを特定する(Maki bot)

に公開

はじめに

Discordのサーバに参加されたユーザがどの招待リンクから入室してきたか?を判断する方法です。残念ながら、Discordには「ユーザがどの招待リンクから入室してきたか?」を判別する仕組みが備わっておりません。 どうにかできないか調べたところ、maki botを利用すれば判別することが判明したので、やり方を解説します。

イメージ

必要な権限について

Makibotは「デフォルトで管理者権限レベル」を要求してきますが、招待コードを取得するための権限は 「サーバの管理」 のみで問題ありません。

ちなみに「サーバの管理」のみを権限に設定する場合、注意点が2つあります。

  • 初回のみ「管理者権限」を付与し、一度ユーザを入室させる必要がある
    • 理由:入室ログがチャンネルに通知されないため
  • 年に数回「管理者権限」を付与する必要がある
    • 理由:招待コードが定期的に「Unknown」となるため

この辺りはMaki botの内部的な処理の都合上だと思うので、理由はさっぱりです(そもそもどうやって招待コードを取得してるんだという謎もありますので、知ってる人いたら教えてください)

手順

まずは、maki botをサーバに招待しましょう。

https://maki.gg/

Maki botをサーバに招待したのち、以下の「Logs」を選択します。(以下画像の赤枠内のアイコンをクリックするとメニューを開けます)

「Join Logs」の項目を有効化し、通知先のチャンネルを選択します。

入室します。

無事、招待コードが表示されているようです。もし通知されないという方は、maki botに「管理者」権限を一時的に付与してください(「必要な権限について」参照)。

まとめ

maki botに「管理者」権限を渡しても気にされない方は、最初から「管理者」権限を渡しておくのが良いと思います。セキュリティが気になるようでしたら、必要な権限のみ渡すというやり方をするのがよいです。

Discussion