「毎日Unity」の技術ブログ

開発で役立つ情報を発信する

【Python】DiscordBotの作成方法(1)

サーバーに新しく参加したメンバーに挨拶をするDiscordBotの作成手順を記事にしました。

[ 作成方法 ]

下記サイトにアクセスします。
discord.com
「New Application」をクリックします。

作成するbotの名前を決めて入力します。入力したらDeveloper Terms of Service and Developer Policyに同意するにチェックして「Create」をクリックします。

Bot」タブの「Add Bot」をクリックします。

「Too many users have this username, please try another.」と表示されたら「General Information」タブでbotの名前を変更してください。

「A wild bot has appeared!」と表示されたら「Copy」をクリックしトークンをコピーします。コピーしたトークンは後ほど必要になるのでメモしておきます。

Bot」タブの「PRESENCE INTENT」と「SERVER MEMBERS INTENT」と「MESSAGE CONTENT INTENT」をオンにします。

「OAuth2」タブの「URL Generator」に進みます。

「SCOPES」内の「bot」にチェックを入れます。

BOT PERMISSIONS」内の「Read Messages/View Channels」と「Send Messages」にチェックを入れます。

「GENERATED URL」にアクセスします。

作成したbotを使用したいサーバーを選択して「はい」をクリックします。

「認証しました」と表示されたら成功です。

コマンドプロンプトに「py -3 -m pip install -U discord.py」と入力してエンターを押します。

Microsoft Windows [Version 10.0.19044.2604]
(c) Microsoft Corporation. All rights reserved.

C:\Users\EDunity>py -3 -m pip install -U discord.py

bot.py」という名前のファイルを作成します。

作成したbotを使用するサーバー内の使用したいテキストチャンネルを右クリックして「IDをコピー」をクリックしチャンネルIDをコピーします。コピーしたチャンネルIDは後ほど必要になるのでメモしておきます。

下記のコードを「bot.py」にコピペして保存します。「token」と「channnelID」は先ほどコピーしたものに書き換えます。

import discord

token = 'hogehogehogehogehoge'
channelID = piyopiyopiyopiyopiyo

intents = discord.Intents.all()
client = discord.Client(intents = intents)

@client.event
async def on_member_join(member):
    channel = client.get_channel(channelID)
    await channel.send(f"Hi {member.mention}, welcome to my Discord server!")

client.run(token)

コマンドプロンプトに「python bot.py」と入力してエンターを押します。

Microsoft Windows [Version 10.0.19044.2604]
(c) Microsoft Corporation. All rights reserved.

C:\Users\EDunity>python bot.py

[ 動作確認 ]

下記のようにサーバーに新しいメンバーが参加すると挨拶をします。