Python으로 Discord 봇 샘플 만들기 (rewrite 버전)

(2019/04/09)discord.py가 정식 릴리스 되었기 때문에 일부 내용을 변경했습니다.
(※rewrite판이라고 불리고 있던 것이 discord.py가 되었습니다)

대상



Python도 Discord Bot도 처음이 대상입니다.

이번에 만드는 것



Discord에서 "! 자고 싶다"라고 입력하면 ""사용자 이름"씨 자자"라고 대답을하는 간단한 Bot을 만듭니다

※이 페이지에서는 rewrite판(async판을 새롭게 재기록한 것)으로 Bot를 만듭니다.
기존의 async 버전에서 Bot을 만들고 싶다면 Python으로 간단한 Discord Bot을 만드는 방법을 참조하십시오.

이 기사를 쓸 때의 환경



(2019/03/06)
- Windows 10
- Pycharm (Python 코드를 작성하는 환경)
- 파이썬 3.7.2
- discord.py 1.0.0a (rewrite 버전)

Discord란?



Discord는 무료 게이머를위한 채팅 및 음성 통화 도구입니다.

미리 해 두는 것


  • Python을 작성하는 텍스트 편집기를 넣어 둡니다

  • Python을 Windows에 설치



    Python을 Windows에 설치 를 참고로 도입해 주십시오.

    discord.py 설치



    discord.py를 설치합니다.
    $ python3 -m pip install -U https://github.com/Rapptz/discord.py/archive/rewrite.zip
    

    ↓(2019/04/09)discord.py가 정식 릴리스 되었기 때문에 기술이 바뀌었습니다.
    (아래의 방법으로 설치하십시오)
    $ python3 -m pip install -U discord.py
    

    Bot용 토큰을 받으세요.



    Discord의 개발자 사이트 로 이동하여 새 Bot을 등록하십시오

    왼쪽의 Bot 필드를 선택하고 Create를 누릅니다.

    그런 다음 TOKEN 열로 가서 Copy를 클릭합니다.
    (이것을 나중에 사용하므로 메모장 당 붙여 넣어주세요)

    마지막으로 OAuth2 열로 이동합니다.
    bot를 선택하고 Copy를 누릅니다.

    WWW 브라우저의 주소란에 붙여넣으면 다음 화면이 표시됩니다.

    배포할 서버를 선택합니다.

    코드 작성



    1. 아래의 코드 부분을 모두 복사하십시오.
    2. 하단 줄의 "액세스 토큰"에 Bot 토큰을 붙여 넣습니다.
    3. UTF-8 형식으로 저장하십시오
    4. 저장

    main.py
    import discord
    import random  # おみくじで使用
    
    client = discord.Client()  # 接続に使用するオブジェクト
    
    
    @client.event
    async def on_ready():
        """起動時に通知してくれる処理"""
        print('ログインしました')
        print(client.user.name)  # ボットの名前
        print(client.user.id)  # ボットのID
        print(discord.__version__)  # discord.pyのバージョン
        print('------')
    
    
    @client.event
    async def on_message(message):
        """メッセージを処理"""
        if message.author.bot:  # ボットのメッセージをハネる
            return
    
        if message.content == "!眠たい":
            # チャンネルへメッセージを送信
            await message.channel.send(f"{message.author.mention}さん 寝ましょう")  # f文字列(フォーマット済み文字列リテラル)
    
        elif message.content == "!投票":
            # リアクションアイコンを付けたい
            q = await message.channel.send("あなたは右利きですか?")
            [await q.add_reaction(i) for i in ('⭕', '❌')]  # for文の内包表記
    
        elif message.content == "!おみくじ":
            # Embedを使ったメッセージ送信 と ランダムで要素を選択
            embed = discord.Embed(title="おみくじ", description=f"{message.author.mention}さんの今日の運勢は!",
                                  color=0x2ECC69)
            embed.set_thumbnail(url=message.author.avatar_url)
            embed.add_field(name="[運勢] ", value=random.choice(('大吉', '吉', '凶', '大凶')), inline=False)
            await message.channel.send(embed=embed)
    
        elif message.content == "!ダイレクトメッセージ":
            # ダイレクトメッセージ送信
            dm = await message.author.create_dm()
            await dm.send(f"{message.author.mention}さんにダイレクトメッセージ")
    
    
    # botの接続と起動
    # (botアカウントのアクセストークンを入れてください)
    client.run("アクセストークン")
    

    실행해 보자.



    저장된 파일을 명령 프롬프트에서 실행해 봅시다.
    $ python main.py
    ログインしました
    ボットの名前
    ボットのID
    discord.pyのバージョン
    ------
    

    이것이 표시되면 기동·로그인에 성공하고 있습니다.
    마지막으로 Discord의 Bot이 있는 서버의 텍스트 채널에서 「!졸고 싶다」라고 치면 대답이 돌아옵니다.

    관련



    Python으로 Discord 봇을 만들 때 FAQ
    htps : // 이 m/에서 f/이고 ms/7d52c95c94268627b618

    참고



    Python으로 간단한 Discord Bot을 만드는 방법
    (내가 처음으로 Bot를 도입했을 때 매우 참고로 했습니다)
    htps : // 코 m / 피나 p 푼 r / ms / 아 f4 cd b04727437477f

    Python을 Windows에 설치
    htps : // 이 m / psy 작은 d / ms / 9930 871fb8169A 91f9A

    좋은 웹페이지 즐겨찾기