Message Content Intent 설정법, 디스코드 봇이 명령어를 읽지 못할 때 먼저 볼 것

2026. 3. 23. 16:15·봇 개발 팁/Discord.py

봇이 온라인으로 보이는데 !핑에 아무 반응도 없으면 코드부터 의심하게 됩니다.

그런데 초반에는 코드보다 Message Content Intent 설정이 빠진 경우가 훨씬 많습니다.

이 옵션 하나 때문에 명령어가 통째로 먹히지 않는 경우가 자주 나옵니다.

접두사 명령어 기반 봇이라면 거의 반드시 확인해야 하는 설정입니다.

한 번만 구조를 이해해 두면 같은 문제로 다시 멈출 일이 크게 줄어듭니다.

1. Message Content Intent가 하는 일

봇이 일반 메시지 내용을 읽을 수 있게 허용하는 옵션입니다.

예를 들어 !핑, !청소, !도움처럼 채팅창에 직접 입력하는 메시지 명령어는 이 권한이 있어야 읽을 수 있습니다.

반대로 슬래시 명령어는 디스코드가 별도 인터랙션 형태로 전달하므로 항상 이 설정이 필요한 것은 아닙니다.

그래도 메시지 기반 기능이 하나라도 들어가면 먼저 켜 둬야 안전합니다.

2. 어떤 경우에 꼭 필요한가

아래 유형이면 거의 필요합니다.

  • !핑, ?help 같은 접두사 명령어 사용
  • 특정 단어 감지 후 자동 답장
  • 욕설 필터, 키워드 감지, 자동 응답 기능
  • 유저가 직접 입력한 일반 메시지를 분석하는 기능

봇이 단순히 슬래시 명령어만 받고 일반 채팅 내용을 읽지 않는 구조라면 없어도 될 수 있습니다.

3. Discord Developer Portal에서 켜는 위치

브라우저에서 Discord Developer Portal에 접속합니다.

애플리케이션을 선택한 뒤 왼쪽의 Bot 메뉴로 들어갑니다.

아래로 내리면 Privileged Gateway Intents 구간이 보입니다.

여기서 Message Content Intent를 켭니다.

저장 버튼이 보이면 저장까지 눌러야 합니다.

생각보다 여기서 저장을 안 누르고 닫는 경우가 많습니다.

4. 코드 쪽에서도 같이 켜야 한다

Portal에서만 켜고 코드에서 인텐트를 열지 않으면 여전히 명령어가 안 읽힐 수 있습니다.

둘 다 맞아야 합니다.

discord.py 예시는 아래처럼 잡습니다.

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix="!", intents=intents)

핵심은 `intents.message_content = True` 한 줄입니다.
이 줄이 없으면 Portal에서 옵션을 켜도 코드에서 메시지 내용을 받지 못합니다.

5. 빠르게 테스트하는 방법

가장 단순한 핑 명령어로 먼저 확인해야 합니다.

@bot.command(name="핑")
async def ping(ctx):
    await ctx.send("퐁")

이 코드를 넣고 실행한 뒤 채널에서 `!핑`을 입력합니다.
반응이 없으면 아래 순서대로 봅니다.
  • Portal에서 Message Content Intent를 켰는가
  • 코드에서 intents.message_content = True를 넣었는가
  • 봇을 재시작했는가
  • 접두사 문자를 실제 입력과 똑같이 맞췄는가

6. 자주 헷갈리는 포인트

  • Portal만 켜고 코드에서 안 켠 경우
  • 코드만 켜고 Portal에서 안 켠 경우
  • 설정을 바꾼 뒤 봇을 재시작하지 않은 경우
  • 슬래시 명령어와 메시지 명령어 차이를 섞어서 이해한 경우

가장 흔한 패턴은 첫 번째와 두 번째입니다.

둘 중 하나만 맞으면 될 것 같지만 실제로는 둘 다 맞아야 합니다.

7. 권한 문제와 혼동하지 말 것

Message Content Intent가 빠지면 봇은 메시지를 읽지 못합니다.

채널 권한이 막힌 경우는 메시지를 읽거나 보내는 범위 자체가 제한됩니다.

겉으로 보기에는 둘 다 봇이 조용하다로 보이기 때문에 헷갈리기 쉽습니다.

권한 구조까지 같이 확인하려면 디스코드 봇 권한 설정법을 같이 보면 됩니다.

8. 슬래시 명령어만 쓸 거라면

슬래시 명령어 구조만 쓴다면 Message Content Intent 의존도는 낮아집니다.

다만 입문 단계에서는 메시지 명령어와 슬래시 명령어를 같이 테스트하는 경우가 많아서 미리 이해해 둬야 합니다.

실제로 처음 봇을 만들 때는 !핑으로 확인하고, 나중에 슬래시 명령어로 넘어가는 흐름이 가장 편합니다.

9. 이런 로그가 보이면 다시 확인

터미널에 에러가 아예 없는데도 반응이 없는 경우가 있습니다.

이럴 때는 오히려 Intent 설정 문제일 가능성이 큽니다.

코드는 돌아가지만 이벤트가 안 들어오는 상태라고 보면 됩니다.

이 문제를 먼저 정리해 두면 뒤에서 ChatGPT 기능이나 자동 응답 기능을 붙일 때 덜 막힙니다.

10. 다음 단계

기본 봇 코드가 아직 없다면 파이썬 디스코드 봇 만들기 처음부터 끝까지부터 먼저 맞춰 둬야 합니다.

슬래시 명령어 구조로 바꿀 계획이라면 그다음 글에서 바로 연결하면 됩니다.

'봇 개발 팁 > Discord.py' 카테고리의 다른 글

파이썬 디스코드 봇 만들기 처음부터 끝까지, discord.py 입문 가이드  (0) 2026.03.20
디스코드 AI 챗봇 만들기, 파이썬(discord.py)과 OpenAI 연결하기  (0) 2026.03.19
Discord.py Components V2 사용 가이드 (신형 임베드, 줄 나누기, 임베드 내에 버튼 등)  (0) 2025.12.06
Discord.py로 디스코드 음악 봇 만들기: 디스호스트로 24시간 호스팅까지!  (0) 2025.06.04
'봇 개발 팁/Discord.py' 카테고리의 다른 글
  • 파이썬 디스코드 봇 만들기 처음부터 끝까지, discord.py 입문 가이드
  • 디스코드 AI 챗봇 만들기, 파이썬(discord.py)과 OpenAI 연결하기
  • Discord.py Components V2 사용 가이드 (신형 임베드, 줄 나누기, 임베드 내에 버튼 등)
  • Discord.py로 디스코드 음악 봇 만들기: 디스호스트로 24시간 호스팅까지!
디스호스트
디스호스트
쉽고 안정적인 디스코드 봇 호스팅 서비스, 디스호스트의 기술 블로그입니다. 디스호스트는 24시간 구동되는 서버를 통해 디스코드 봇을 대신 구동시켜 드리는 서비스를 제공하고 있습니다.
  • 디스호스트
    디스호스트 기술 블로그
    디스호스트
  • 블로그 메뉴

    • 홈
    • 디스호스트 사용 가이드
    • 디스코드 봇 호스팅, 24시간 서버 구동
    • 분류 전체보기 (54) N
      • 디스코드 (9)
      • 디스호스트 가이드 (12)
      • 봇 개발 팁 (15) N
        • Discord.js (9)
        • Discord.py (5) N
      • DiscordJS 개발 튜토리얼 (15)
      • 디스코드 서버 운영 (1) N
      • 디스코드 봇 오류 해결 (1) N
  • 링크

    • 디스호스트
  • hELLO· Designed By정상우.v4.10.3
디스호스트
Message Content Intent 설정법, 디스코드 봇이 명령어를 읽지 못할 때 먼저 볼 것
상단으로

티스토리툴바