👾
【Discord】ユーザが入室した招待URLを特定する(Maki bot)
はじめに
Discordのサーバに参加されたユーザがどの招待リンクから入室してきたか?を判断する方法です。残念ながら、Discordには「ユーザがどの招待リンクから入室してきたか?」を判別する仕組みが備わっておりません。 どうにかできないか調べたところ、maki botを利用すれば判別することが判明したので、やり方を解説します。
イメージ
必要な権限について
Makibotは「デフォルトで管理者権限レベル」を要求してきますが、招待コードを取得するための権限は 「サーバの管理」 のみで問題ありません。
ちなみに「サーバの管理」のみを権限に設定する場合、注意点が2つあります。
- 初回のみ「管理者権限」を付与し、一度ユーザを入室させる必要がある
- 理由:入室ログがチャンネルに通知されないため
- 年に数回「管理者権限」を付与する必要がある
- 理由:招待コードが定期的に「Unknown」となるため
この辺りはMaki botの内部的な処理の都合上だと思うので、理由はさっぱりです(そもそもどうやって招待コードを取得してるんだという謎もありますので、知ってる人いたら教えてください)
手順
まずは、maki botをサーバに招待しましょう。
Maki botをサーバに招待したのち、以下の「Logs」を選択します。(以下画像の赤枠内のアイコンをクリックするとメニューを開けます)
「Join Logs」の項目を有効化し、通知先のチャンネルを選択します。
入室します。
無事、招待コードが表示されているようです。もし通知されないという方は、maki botに「管理者」権限を一時的に付与してください(「必要な権限について」参照)。
まとめ
maki botに「管理者」権限を渡しても気にされない方は、最初から「管理者」権限を渡しておくのが良いと思います。セキュリティが気になるようでしたら、必要な権限のみ渡すというやり方をするのがよいです。
Discussion