pythonとbotで承認制のdiscordサーバー作りました!
前から承認制のdiscordサーバーはあったのですが、この度FANBOXへ加入することで自動的に承認される仕組みを作成しました。
↓こちらから参加できます
まだバグとかあるし、コードも汚いのでプログラムの公開はできないのですが、大体こんな感じでやっているのか軽く紹介したいと思うので、FANBOXとdiscordサーバーを使っているクリエイターの方は参考にしてみてください。
プログラムの流れ
簡単な流れとしては
pythonを使い、ブラウザ操作
FANBOXにログインしメンバーの名前を取得しcsv化
pythonを使い、discordサーバーに登録したbotを起動
csvの中に名前がある人に、サーバーの閲覧権限を付与
以上です。
これを、定期的に実行しています。
開発環境
開発についても軽く話します。
pythonはmacにインストールしてプログラミングしました。
googleコラボラトリーという、webブラウザから仮想環境で開発できる便利なものもあるのですが、ブラウザ操作を行うため仮想環境だと目視で確認できないのと、最終的には手元のPCで動かすので、python3の入ったmacでVisual Studio Codeを使い開発しました。
ブラウザ操作に使ったライブラリはHeliumです。
アホみたいに便利なので、webスクレイピングしたい人はぜひ!
botについて
bot作成は少しわかりづらかったです。
基本はdiscordのサイトからbotを作成し、取得したトークンをpython側に記載すれば動かせます。
https://discord.com/developers/applications
ただ、作成したbotは自分のdiscordサーバーに普通のメンバーみたいに招待する必要があって、その際に適切な権限付与とロール設定をしないと上手く動かないので、そこだけ手間取りました。
定期実行
定期実行はmacなのでcrontabを使ってます。
これがめちゃくちゃわかりづらく、windowsのタイムスケジューラのほうが便利だと感じた自分はやはり三流プログラマーだなと感じます…。
chatGPTに聞くと設定方法とかわかりやすく教えてくれるのでオススメです。
今後の課題
課題としては、毎回ログインするためのブラウザ操作が必要なことですね。
何度もログイン操作をしていると、運営側に不審なアクセスと思われる恐れがあります。クッキーを使ってログインできれば無駄な手間が減ると思うので、今後改善していきたいと思います。
あとエラーが起きた際の処理もできてないので、その辺もちゃんと作成します。
ちなみにnoteでも同じ仕組みを作ろうと思ったのですが、メンバー名の取得がなぜか安定せず、csvダウンロードも自動化するとちょっとプログラムが手間になりそうだったので、そっちはまだ作れてないです。
というわけで、discordサーバーの自動承認botに関する記事でした!
そのうち作成したプログラム公開します。
この記事が気に入ったらサポートをしてみませんか?