이 글은 벨로그에 올려놓은 게시물을 그대로 티스토리에 옮긴 내용입니다!
원본 링크

 

 

[230527] 디스코드 봇 개발일지

오늘부터 드디어 해보고 싶었던 디스코드 봇을 만들 것이다. 어떤 봇을 만들거냐? 여러 기능이 있겠지만 우선적으론 롤 전적검색이 가능하도록 만드려고 한다. 차근차근 한 뒤 음악 듣는 기능이

velog.io

 

디스코드 봇 만들기

오늘부터 드디어 해보고 싶었던 디스코드 봇을 만들 것이다.
어떤 봇을 만들거냐? 여러 기능이 있겠지만 우선적으론 롤 전적검색이 가능하도록 만드려고 한다. 차근차근 한 뒤 음악 듣는 기능이나 자동 알림을 보내도록 하는 기능 등 여러가지를 추가할 생각이다.

오늘은 가볍게 만들어 보기만 하고 test를 돌려보는 정도로만 진행했다.

우선 봇을 만들기 위해 디스코드 개발자 포털로 들어간다.

 


New Applications을 눌러서 이름을 지정해주고 만들어준다.

 


사진 아래에 토큰이 제공되는데 이 토큰은 나중에 코드상에서 봇에 접속하기위한 고유키이므로 까먹지 않게 따로 잘 보관한다.

 

 

OAuth2 > URL Generator 에서 bot을 체크하면 맨 아래 URL이 생성되는데 이 URL을 카피해서 주소창에 입력하면

 

 

어디 디스코드 서버에 초대할 것인지 묻는 창이 나온다.

 

 

 

승인해주니까 오프라인 상태로 서버에 잘 들어왔다.

이제 온라인으로 바꿔주고, !인사 를 입력하면 안녕하세요 라는 문구를 출력할 수 있도록 간단한 테스트 코드를 작성해볼 것이다.
우선 사용한 언어는 쉽고 간단한 파이썬으로 하기로 했다.

파이썬으로 디스코드 봇을 만들기 위해서는 파이썬용 디스코드 봇 API인 discord.py를 설치해야 한다.

 

 

터미널에서 pop install discord.py 입력해서 설치해주고

 

import discord
from discord.ext import commands
bot = commands.Bot(command_prefix='!', intents=intents)
token = '토큰 주소 넣기'

@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('--------')

@bot.command()
async def 인사(ctx):
    await ctx.send("안녕하세요")

bot.run(token)

 

위와 같은 내용을 입력해준다.

 

on_ready() 부분은 오프라인이였던 봇을 온라인으로 활성화 시켜주고, command 부분은 인사를 입력하면 봇이 안녕하세요를 출력하는 기능 부분이다.

 

하지만 온라인은 잘 활성이 됐지만 메시지는 보내도 응답이 없는 것을 확인헀다.
알아보니 권한 문제로 봇이 명령어를 입력받아도 메시지를 보낼 수 없던 것이였다.

실제로 코드를 실행해보면
WARNING discord.ext.commands.bot Privileged message content intent is missing, commands may not work as expected. 과 같은 경고문이 뜨는데 이 경고문은 권한이 필요한 메시지 내용에 대한 intent 설정이 제대로 이루어지지 않아 발생하는 내용이다.

 

이로 인해 일부 기능이 예상대로 작동하지 않을 수 있고, 이걸 해결하기 위해 필요한 intents를 설정해주어야 한다. 나 같은 경우는 메시지를 보내는 권한이 필요하므로 우선 개발자 앱에서

 

 

Message Content Intent를 활성화 시켜주고,

 

intents.message_content = True

 

위와 같은 코드를 붙여주고 실행하면

 

 

이번엔 경고문 없이 잘 실행되는 것을 확인했다.
이제 메시지가 잘 오는지 봇에게 명령어를 입력해보자.

 

 

정상적으로 잘 동작하는 것을 확인할 수 있었다!

 

📌 각종 참고한 사이트

discord 개발자 공식문서
discord.py 공식문서
Real Python 디스코드 튜토리얼
참조 블로그1
참조 블로그2

 

사실 봇을 만들기만 하는거까지는 어렵진 않아서 전공자가 아니여도 누구나 쉽게 만들 수 있을 것 같다. 이제 시간날 때마다 기능을 하나씩 추가해서 친구들끼리 있는 서버에 초대해서 갖고 놀아야지 !

 

복사했습니다!