봇을 만들었는데 다른 서버에 초대했을 때 접속이 정상적으로 표시되지 않거나 슬래시 명령어가 뜨지 않는 문제 정리

2026년 5월 21일·82개 메시지

새 서버에 초대했는데 봇이 멤버 목록에 보이지 않거나 / 명령어가 나타나지 않고 역할 부여가 자동으로 사라지는 현상을 다루는 가이드다. 디스코드 OAuth 설정, 슬래시 커맨드 등록, 서버 관리 봇의 자동화 규칙, 호스팅 상태 등을 점검해 근본 원인을 찾고 해결하는 방법을 정리한다.

증상

  • 초대가 성공 메시지로 나오지만 서버의 멤버 목록에 봇이 보이지 않음.
  • 슬래시 명령어가 해당 서버에서 나타나지 않음.
  • 서버 설정에서 역할을 부여해도 적용되지 않거나 창을 닫으면 권한이 다시 빠짐.
  • 다른 서버에서는 정상적으로 초대 및 명령 실행이 되는 경우가 있음.

원인

  • OAuth2 초대 URL에 필요한 스코프(bot, applications.commands) 또는 길드 설치 설정 누락.
  • 슬래시 명령어가 해당 길드에 등록되지 않았거나 전역 등록 후 전파 지연.
  • 호스팅(예: 디스호스트)에 배포된 봇 프로세스가 오프라인이거나 토큰/인텐트 설정이 누락됨.
  • 서버 관리 봇(예: Dyno, MEE6, 솔이봇 등)의 안티-스팸·테러방지 규칙이 자동으로 역할을 제거하거나 의심스러운 봇으로 처리함.
  • 봇 역할 계층(역할 순서)이 낮아 필요한 권한을 얻지 못함.

해결 방법

1단계: OAuth2(초대)와 권한 확인

  • 개발자 포털에서 OAuth2 URL 생성기 사용. 최소로 아래 스코프를 포함시켜 초대 URL 생성:
    • scope=bot
    • scope=applications.commands (슬래시 명령어 사용 시 필수)
  • 테스트 단계에서는 길드(서버) 설치 체크하여 길드 단위 명령 등록을 사용하면 즉시 반영된다.
  • 권한(Permissions) 정수 값으로 필요한 권한을 지정하거나, 초대 시 권한 체크박스에서 적절히 선택한다.

예: 길드용 커맨드 바로 등록 (cURL 예시)

curl -X POST "https://discord.com/api/v10/applications/APP_ID/guilds/GUILD_ID/commands" \
  -H "Authorization: Bot BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"ping","description":"Ping!"}'

2단계: 슬래시 명령 등록과 전파 지연 대응

  • 길드 명령으로 먼저 등록하면 즉시 확인 가능. 전역 등록은 최대 1시간 이상 소요될 수 있다.
  • 등록 문제 확인 시 API 호출 응답 코드를 확인하고, applications.commands 스코프로 초대했는지 검증한다.

3단계: 호스팅·인텐트·프로세스 상태 점검

  • 호스팅(예: 디스호스트)에 봇이 정상 기동 중인지 확인하고 로그에서 인증 에러(토큰 오류)나 권한 관련 에러를 확인한다.
  • 멤버 목록 접근이 필요하면 개발자 포털에서 Server Members Intent(Privileged Intent)를 활성화하고, 코드에서 인텐트를 설정한다. 예, discord.js:
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS] });

4단계: 역할 부여·계층 문제 해결

  • 봇 역할을 서버 설정에서 직접 부여하고, 봇이 조작해야 할 역할보다 상위에 위치시키기.
  • 역할 변경이 반복해서 되돌아가면 서버의 감사 로그(Audit Log)를 확인해 누가 역할을 제거하는지 파악한다.

5단계: 관리봇(안티-스팸) 설정 점검 및 화이트리스트

  • 서버에 설치된 관리봇의 안티-스팸/테러방지·의심스러운 봇 처리 기능이 자동으로 권한을 제거하거나 차단할 수 있음.
  • 해당 관리봇의 설정에서 의심스러운 봇 민감도를 낮추거나 새로 초대한 봇을 화이트리스트(허용 목록) 에 추가하도록 서버 관리자에게 요청한다.
  • 자체적으로 해결 불가하면 관리봇의 서포트 채널에 문의해 설정 변경 방법을 확인한다.

마무리

OAuth2 스코프와 명령어 등록, 호스팅 상태, 인텐트, 그리고 서버의 관리봇 규칙을 차례대로 점검하면 대부분의 초대/명령 미노출·역할 소실 문제를 해결할 수 있다. 디스코드 봇을 배포한 뒤에는 권한·역할 계층과 관리봇 설정을 항상 확인하고, 호스팅(예: 디스호스트) 로그를 활용해 원인을 빠르게 파악하자.