
디스코드(영어: Discord, 약칭: 디코)는 게이밍부터, 교육과 비즈니스 영역의 커뮤니티 생성을 목적으로 설계된 VoIP 응용 소프트웨어의 하나이다. 디스코드는 채팅 채널에 있는 유저 사이의 텍스트, 이미지, 비디오, 음성 커뮤니케이션에 특화되어있다. 디스코드는 마이크로소프트 윈도우, macOS, 안드로이드, iOS, 리눅스, 웹 브라우저에서 실행된다. 2019년 11월에는 개발자들이 디스코드에 약 4000만 이상의 사용자들이 있다고 발표하였다. 또 '봇'이라는 신개념 로봇이 도입되었는데, 이들은 디스코드 서버의 자동화된 기능을 할 수 있도록 도와준다. 봇은 대부분이 무료지만 일부 봇의 경우엔 봇 개발진의 결정으로 유료화되어 있다.
이번엔 디코봇을 본격적으로 만들어 보려 한다.
언어로는 python을 사용할 거고, discord.py 라이브러리를 설치하여 개발할 계획이다.
discord.py는 Python용 디스코드 봇 API를 사용하기 위해 가장 많이 사용되는 라이브러리들 중 하나이다. 대부분의 함수가 코루틴을 사용하여 코드가 효율적으로 작동하게 해준다는 장점이 있다.
다음은 hello 입력에 답하는 디코봇 코드다.
import discord
TOKEN = 'BOT_TOKEN'
# Intents 설정 (메시지, 멤버 등 필요한 권한 활성화)
intents = discord.Intents.default()
intents.message_content = True # 메시지 내용 읽기 권한 (discord.py 2.x 이상에서 필수)
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f'We have logged in as {client.user}')
@client.event
async def on_message(message):
if message.author == client.user: #봇 자신(client.user)가 보낸 메시지는 무시
return
if message.content.lower() == 'hello':
await message.channel.send(f'Hello, {message.author.display_name}!')
#비동기처리
client.run(TOKEN)
다음은 디스코드 개발자 포털에서 디코봇을 만들어 서버에 초대하는 방법이다.
https://discord.com/developers/applications로 이동해서 로그인 한다.

우측 상단의 New Application을 클릭해 애플리케이션(봇)을 생성한다.
애플리케이션 이름을 입력하고 Create를 클릭한다.
왼쪽 setting에서 bot을 클릭한다.

생성된 봇의 TOKEN을 복사해 안전하게 보관한다. (코드에서 사용)
public bot 토클을 켜서 서버에 초대가 가능하게 한다.
presence intent는 이벤트 수신, server members intent는 멤버 이벤트 수신, message content intent는 메세지 수신에 필요하다. 봇이 권한을 가지도록 모두 켜준다.
하단에 봇 권한에 일단은 테스트 용으로 administrator로 설정해준다.
이번에는 왼쪽 setting에서 OAuth2을 클릭한다.
OAuth2 URL Generator에서 scopes 항목에 bot을 체크하고 하단에 bot permissions에 administarator를 체크한 뒤 하단의 GENERATED URL을 복사하여 주소란에 붙여넣으면 원하는 서버에 초대할 수 있다.
코드에 토큰을 넣은 뒤 위의 가상환경에서 코드를 실행하면 다음과 같이 작동하는 걸 볼 수 있다.
