0
2

More than 1 year has passed since last update.

Python で Discord Bot を起動する

Last updated at Posted at 2022-12-09

備忘録として残しておきます。

Bot の作成

  1. Discord Developer Portal にアクセスし "New Application" からアプリケーションを作成する。
    ※ このとき Discord のアカウントが必要。
  2. メニューの "Bot" から "Build-A-Bot" > "Add Bot" する。
    これで Bot 自体の作成は OK。
    "PUBLIC BOT" のチェックは外しておくとより安全かもしれない。

Bot をサーバーへ招待する

  1. メニューの "OAuth2" から "URL Generator" を選択する。
  2. "SCOPES" で "bot" を選択し、"BOT PERMISSONS" で Bot に与える権限を選択する。
  3. "GENERATED URL" に生成された URL が表示されるので、その URL にアクセスする。
    生成された URL の一例
    https://discord.com/api/oauth2/authorize?client_id=XXXXXXXXXXXXXXXXXXX&permissions=8&scope=bot
    
  4. 追加させるサーバーを選択すれば、そのサーバーに招待できる。

discord.py で Bot を稼働させる

discord.py とは

  • Discord Bot を製作するための API ラッパー。( 公式ドキュメント )
  • 開発は終了しているため、今後の Discord の環境変化についていけなくなる可能性があるため注意が必要。

Bot プログラムの作成・起動

Python でプログラムを作成する。
ここで、Bot のアクセストークンが必要になるので控えておく。
トークンは Discord Developer Portal の "Bot" > "Build-A-Bot" > "TOKEN" でコピーできる。

  • サンプルコード

    sample_bot.py
    import discord
    
    # Bot のアクセストークン
    DISCORD_BOT_TOKEN = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
    # 接続に必要な設定/オブジェクト
    intents = discord.Intents.default()
    intents.message_content = True
    client = discord.Client(intents=intents)
    
    
    # 起動時に動作する処理
    @client.event
    async def on_ready():
        # 起動したらターミナルに通知する
        print("YOUR DISCORD BOT is ACTIVE now!")
    
    
    # メッセージ受信時に動作する処理
    @client.event
    async def on_message(message):
        # Bot からのメッセージは無視する
        if message.author.bot:
            return
    
        # Hello と送られたら Hi! と返す
        if message.content == "Hello":
            await message.channel.send("Hi!")
            
    
    # Bot の起動と Discord サーバーへの接続
    client.run(DISCORD_BOT_TOKEN)
    
  • Bot の起動

    プログラムの実行
    python sample_bot.py
    

    Bot がいるサーバーで "Hello" と送れば Bot が "Hi!" と返してくれるはず。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2