Python으로 간단한 Discord Bot을 만드는 방법

덧붙여 2019/1/23 Discord의 페이지의 사양이 바뀌었기 때문에 내용을 조금 변경했습니다.
덧붙여 2019/5/11 discord.py 의 사용법이 다소 변경되고 있었으므로, 이 기사에 쓰여져 있는 코드를 새로운 것으로 수정했습니다. @1ntegrale9 씨보고 감사합니다.

이번에 만드는 것



Discord에서 "안녕하세요"를 입력하면 "안녕하세요, "사용자 이름"씨!"라고 대답하는 간단한 Bot을 만듭니다. 나중에 반응하는 단어를 바꿀 수 있습니다.
거의 공식 Github 에 있는 퀵 스타트와 같은 내용입니다.

Discord란?



최근에 하고 있는 게이머용 채팅 앱입니다. Slack과 조금 비슷하고 봇이 개발하기 쉬운 환경입니다.

미리 해 두는 것



  • Python3 환경 만들기
  • Python을 작성하는 텍스트 편집기를 넣는다

  • discord.py 다운로드



    discord.py를 pip를 사용하여 설치합니다.
    python3 -m pip install -U discord.py
    

    Bot용 토큰을 받으세요.



    디스코드 개발자 사이트로 이동하여 새 Bot을 등록합니다.

    먼저 Applications에서 Create an Application을 클릭합니다.
    그런 다음 NAME에 내 봇의 이름을 쓰고 Create를 클릭합니다.


    왼쪽의 Bot 열로 이동하여 Add Bot을 클릭하여 Yes, do it!



    또한 같은 페이지의 TOKEN 입력란에 가서 Click to Reveal Token을 클릭하여 Token을 확인합니다 (나중에 사용)


    마지막으로 왼쪽에 있는 OAuth2 열로 이동합니다.
    OAuth2 URL GRNERATOR 아래에 많은 체크 박스가 있다고 생각하기 때문에, Bot 만이 체크된 상태로, 아래에 표시되고 있는 URL를 카피합니다.


    복사한 URL로 이동하면 다음과 같은 화면이 표시됩니다.


    자신의 서버를 선택하고 추가합니다.

    Bot 쓰기



    실제로 쓰자.

    먼저 discord.py 패키지를 가져옵니다.
    import discord
    
    client = discord.Client()
    

    그런 다음 Bot이 로그인하고 준비가 완료되면 처리를 작성합니다.
    (코피페라도 좋다고 생각합니다)
    @client.event
    async def on_ready():
        print('Logged in as')
        print(client.user.name)
        print(client.user.id)
        print('------')
    

    답장을 주는 코드 작성
    @client.event
    async def on_message(message):
        # 「おはよう」で始まるか調べる
        if message.content.startswith("おはよう"):
            # 送り主がBotだった場合反応したくないので
            if client.user != message.author:
                # メッセージを書きます
                m = "おはようございます" + message.author.name + "さん!"
                # メッセージが送られてきたチャンネルへメッセージを送ります
                await message.channel.send(m)
    

    마지막으로 Bot을 시작합니다.
    # token にDiscordのデベロッパサイトで取得したトークンを入れてください
    client.run("token")
    

    전체 코드를 함께 쓰면

    main.py
    import discord
    
    client = discord.Client()
    
    @client.event
    async def on_ready():
        print('Logged in as')
        print(client.user.name)
        print(client.user.id)
        print('------')
    
    @client.event
    async def on_message(message):
        # 「おはよう」で始まるか調べる
        if message.content.startswith("おはよう"):
            # 送り主がBotだった場合反応したくないので
            if client.user != message.author:
                # メッセージを書きます
                m = "おはようございます" + message.author.name + "さん!"
                # メッセージが送られてきたチャンネルへメッセージを送ります
                await message.channel.send(m)
    
    client.run("token")
    

    실행해 보자.



    저장된 파일을 실행해 봅시다.
    $ python main.py
    Logged in as
    ユーザー名
    ID
    ------
    

    이것이 출력되면 성공적으로 실행할 수 있습니다.

    마지막으로 Discord에 가서 Bot이 있는 그룹에서 "안녕하세요"라고 치면 대답이 돌아올 것입니다!

    마지막으로



    반응하는 말이나 대답은 간단하게 바꿀 수 있습니다만 다른 처리를 넣으려고 했을 때는 async 가 되어 있는 것을 고려해 보세요.

    참고



    discord.py의 공식 Github

    좋은 웹페이지 즐겨찾기