파이썬으로 디스코드 봇 만들기

디스코드의 놀라운 세계에 빠져보세요!

파이썬으로 디스코드 봇 만들기 디스코드의 놀라운 세계에 빠져보세요!

봇 설정하기

봇 초대하고 켜보기

디스코드 봇 생성

디스코드 봇을 만들기 위해서는 봇 계정을 만들어야죠!

일단 디스코드 계정은 있으시겠죠?

디스코드 홈페이지에서 쭉 내려가시면 이러한 화면이 나옵니다. 

여기서 개발자를 클릭하시고 페이지가 바뀌면 왼쪽에서 Application을 찾아주세요!

그리고, 메모장을 키시고 오른쪽 위에 New Application을 클릭해주세요.

그리고 원하시는 이름을 입력하시면, 

General Information이라는 화면이 나옵니다.

거기서 Client id를 복사해서 메모장에 붙여주시고,

왼쪽에서 Bot을디스코드 봇 생성

디스코드 봇을 만들기 위해서는 봇 계정을 만들어야죠!

 

일단 디스코드 계정은 있으시겠죠?

 

디스코드 홈페이지에서 쭉 내려가시면 글씨들이 나옵니다. 

여기서 개발자를 클릭하시고 페이지가 바뀌면 왼쪽에서 Application을 찾아주세요!

 

그리고, 메모장을 키시고 오른쪽 위에 New Application을 클릭해주세요.

그리고 원하시는 이름을 입력하시면, 

General Information이라는 화면이 나옵니다.

거기서 Client id를 복사해서 메모장에 붙여주시고,

왼쪽에서 Bot을 찾아서 들어가주세요.

이제 거기에 들어가셨으면 이번에는 TOKEN이라는걸 복붙해주세요.

 

이제 IDE를 켜주세요.

대충 파일을 지정해주시고, 이렇게 쳐주세요.

 

import discord
from discord.ext import commands

app = commands.Bot(command_prefix='prefix that you want')

@app.event
async def on_ready():
    print('다음으로 로그인합니다: ')
    print(app.user.name)
    print('connection was succesful')
    await app.change_presence(status=discord.Status.online, activity=None)
    
    
app.run('token that you copied')

참고로 여기 위에 app = commands...에서 command_perfix=''여기 안에다가 원하시는 접두사를 붙여주세요.

예를 들자면... /나 !같은걸 붙여주시면 됩니다.

그리고 맨 아래 토큰에다가 복사한 토큰을 입력해주세요.

다 입력하셨다면 이제 봇을 초대해 봅시다.

아까 복사한 Client id를 https://discord.com/oauth2/authorize?client_id=여기에 클라이언트 아이디&permissions=8&scope=bot client_id부분에 붙여넣어줍니다.

그리고 원하시는곳에 초대하시면  이런식으로 초대가 됩니다.

온라인은 제가 켜놔서 그래요... 이제 이걸 실행시키면 (f5), 온라인이 됩니다.

댓글

같이... 공부해주실거죠?

댓글 본문
  1. discord, discord.ext 패키지가 없다고 뜨는데 어떻게 하죠?
  2. 바다라네
    ide가 뭐에요
  3. Hyuk Kim
    안녕하세요 올려주신 방법보고 참고 많이 했습니다.
    혹시 서버를 어떤걸로 사용하고 계신지 알려주실 수 있을까요?
  4. 그린치08
    잘 된것 같은데...
    > c:; cd 'c:\Users\eom70\Downloads'; & 'python' 'c:\Users\eom70\.vscode\extensions\ms-python.python-2021.3.680753044\pythonFiles\lib\python\debugpy\launcher' '61832' '--' 'c:\Users\eom70\Downloads\testbot_v2.py'
    Traceback (most recent call last):
    File "C:\Users\eom70\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
    File "C:\Users\eom70\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
    File "c:\Users\eom70\.vscode\extensions\ms-python.python-2021.3.680753044\pythonFiles\lib\python\debugpy\__main__.py", line 45, in <module>
    cli.main()
    File "c:\Users\eom70\.vscode\extensions\ms-python.python-2021.3.680753044\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main
    run()
    File "c:\Users\eom70\.vscode\extensions\ms-python.python-2021.3.680753044\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file
    runpy.run_path(target_as_str, run_name=compat.force_str("__main__"))
    File "C:\Users\eom70\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 267, in run_path
    code, fname = _get_code_from_file(run_name, path_name)
    File "C:\Users\eom70\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 242, in _get_code_from_file
    code = compile(f.read(), fname, 'exec')
    File "c:\Users\eom70\Downloads\testbot_v2.py", line 4
    app = commands.Bot(command_prefix=!)
    ^
    SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
    PS C:\Users\eom70\Downloads> 된건가요...프린트문에 넣은게 안뜨는데
  5. 그린치08
    그냥 파이썬만 설치하고 셸창에서 임포트 디스코드하면 그르케 뜹니당 =)
    대화보기
    • hangellove
      Windows PowerShell
      Copyright (C) Microsoft Corporation. All rights reserved.

      새로운 크로스 플랫폼 PowerShell 사용 https://aka.ms/pscore6

      PS C:\Users\kimnaraa\Desktop\파이썬> & C:/Users/kimnaraa/AppData/Local/Programs/Python/Python39/python.exe c:/Users/kimnaraa/Desktop/파이썬/main.py
      Traceback (most recent call last):
      File "c:\Users\kimnaraa\Desktop\파이썬\main.py", line 1, in <module>
      import discord
      ModuleNotFoundError: No module named 'discord'
      PS C:\Users\kimnaraa\Desktop\파이썬>
      이럴땐 어케해야하죠
    • 명이
      아마 bot.run(token)을 안하신거 아닐까요?
      대화보기
      • 김민채
        During handling of the above exception, another exception occurred:

        Traceback (most recent call last):

        File "C:\ProgramData\Anaconda3\lib\site-packages\discord\client.py", line 90, in _cleanup_loop
        _cancel_tasks(loop)

        File "C:\ProgramData\Anaconda3\lib\site-packages\discord\client.py", line 75, in _cancel_tasks
        loop.run_until_complete(asyncio.gather(*tasks, return_exceptions=True))

        File "C:\ProgramData\Anaconda3\lib\asyncio\base_events.py", line 592, in run_until_complete
        self._check_running()

        File "C:\ProgramData\Anaconda3\lib\asyncio\base_events.py", line 552, in _check_running
        raise RuntimeError('This event loop is already running')

        RuntimeError: This event loop is already running


        During handling of the above exception, another exception occurred:

        Traceback (most recent call last):

        File "C:\Users\ADMIN\.spyder-py3\temp.py", line 14, in <module>
        app.run('ODEzNzM5MDUzOTYyMTAwNzY2.YDTrjQ.uWJyfeGvIdPO9TS1XIjOr9umnzc')

        File "C:\ProgramData\Anaconda3\lib\site-packages\discord\client.py", line 714, in run
        _cleanup_loop(loop)

        File "C:\ProgramData\Anaconda3\lib\site-packages\discord\client.py", line 95, in _cleanup_loop
        loop.close()

        File "C:\ProgramData\Anaconda3\lib\asyncio\selector_events.py", line 89, in close
        raise RuntimeError("Cannot close a running event loop")

        RuntimeError: Cannot close a running event loop
        이럴땐 어케해야하죠
      • 하브드레곤
        'token 옆에 복사 코드 넣어야해요? 'token을 지우고 복사한 토큰을 넣어야해요?
      • Moong0906
        참고로 line 14는 토큰 입력하는거에여
      • Moong0906
        예외가 발생했습니다. RuntimeError
        SSL is not supported.
        File "C:\Users\저의 컴퓨터 이름\OneDrive\바탕화면\Discord bot.py", line 14, in <module>
        app.run('저의 토큰')

        이렇게 에러가 나는데 어떻게 해야할까요? ㅠㅠ 도와주세요..ㅠㅠ
        discord.py도 다 깔았고.... 코드도 썼고 토큰도 넣었고 ...ㅠㅠ
      • 명이
        일단 pip 버전이 낮아서 나타나는 워닝 메시지니까 가볍게 무시해주시면 됩니다.
        첫번째 import에서 i에 오류가 있으시나고요?

        discord.py와 discord 모듈이 있는지 확인해주세요.
        대화보기
        • Dev Ruby
          cmd에서 python -m pip install --upgrade pip 쳐보세요. pip의 새로운 버전이 나왔을때 업데이트 하라고 알리는 메세지이니 따로 뭐 걱정 안하셔도 됩니다
          대화보기
          • 박차웅
            첫번째 import에서 i에 오류가 있다네요 어떻게 해결해야하죠
          • 기비껴서
            우왓 다들 열심히 하네요~!!@!
          • 박차웅
            어느정도는 done이 뜨는데 나머지에서 에러가 떠요
          • 박차웅
            WARNING: You are using pip version 20.2.3; however, version 20.3.3 is available.
            You should consider upgrading via the 'c:\users\user\appdata\local\programs\python\python39\python.exe -m pip install --upgrade pip' command. cmd에서 이렇게 뜰 때는 어떻게 해야할까요
          • 명이
            IDLE의 경우 : f5
            VSCODE의 경우 : f5
            파이참의 경우 : shift +f10
            대화보기
            • 이론상다이아
              pip install discord 하셧어요?
              대화보기
              • 리트머스
                봇 추가 까지 다했는데 IDE에서 실행시키는법 (봇 온라인 하는법)을 잘 모르겠습니다
              • 0010010
                import에 에러가 뜨면서 안돼요... 왜 이럴까요?
              • osch7497
                오오 좋은 정보!
              • 명이
                내일 더 올리겠습니다.
                오늘은 자바 배우러 가야 되서 이만...
              graphittie 자세히 보기