Discord 게이트웨이 인텐트: 봇이 들을 수 있는 것
게이트웨이 인텐트는 봇이 연결할 때 선언하는 옵션으로, 어떤 그룹의 실시간 이벤트를 받고 싶은지 Discord에 알려 줍니다. 인텐트를 요청하지 않은 봇은 그 이벤트를 아예 듣지 못하며, 이것이 데이터를 비공개로 두고 트래픽을 작게 유지합니다.
게이트웨이란
봇은 게이트웨이라고 부르는 Discord와의 상시 연결을 유지합니다. 이를 통해 Discord는 일이 일어날 때마다 이벤트를 밀어 보냅니다. 메시지가 올라왔다, 멤버가 들어왔다, 누군가 입력을 시작했다, 음성 채널이 바뀌었다. 제한이 없다면, 모든 봇이 모든 서버의 모든 이벤트를 받게 됩니다.
인텐트가 필터입니다. 연결한 뒤 봇이 보내는 첫 메시지에서, 원하는 인텐트를 하나의 숫자로 나열합니다. 그러면 Discord는 일치하는 이벤트만 보냅니다.
흔한 인텐트
- 길드: 서버, 채널, 역할이 만들어지거나 바뀌는 것. 거의 모든 봇이 씁니다.
- 길드 메시지: 서버 채널의 메시지. 그 메시지의 텍스트에는 아래의 특권 인텐트가 필요합니다.
- 길드 음성 상태: 누가 음성 채널에 들어오거나 나가는지. 음악과 음성 도구에 필요합니다.
- 길드 모더레이션: 밴과 감사 로그 항목입니다.
- 길드 메시지 반응: 추가되거나 제거된 반응입니다.
세 가지 인텐트는 특별합니다. 프레즌스, 서버 멤버, 메시지 내용입니다. 이들은 특권 인텐트인데, 더 많은 개인 데이터를 노출하며 큰 봇에는 추가 승인이 필요하기 때문입니다.
서버 주인에게 중요한 이유
봇은 온라인인데 메시지, 입장, 음성 변화를 무시한다면, 빠진 인텐트가 흔한 원인입니다. 봇이 설정에서 켜지지 않은 특권 인텐트를 요청하면 4014 오류 코드와 함께 연결이 끊기는 것도 설명할 수 있습니다. 봇 오프라인 게이트웨이 오류 4004와 4014 글이 다룹니다.
인텐트는 개인정보의 신호이기도 합니다. 기능에 필요한 것만 요청하는 봇은 더 신뢰하기 쉽습니다.
인텐트와 Noxyr
일반 Noxyr 봇은 여러분을 위해 관리됩니다. 자신의 애플리케이션으로 커스텀 봇을 설정한다면, 설정 가이드가 설명하듯 Discord 개발자 포털에서 서버 멤버 인텐트와 메시지 내용 인텐트를 켜야 합니다. 이들은 환영 메시지와 접두사 명령 같은 기능에 필요합니다. 커스텀 봇이 오프라인이라면, 봇 오프라인 가이드부터 보세요.
더 자세한 내용은 특권 게이트웨이 인텐트 설명을 보세요.
직접 만들지 않은 봇 점검하기
설치한 봇이 이상하게 행동한다면, 그 개발자에게 어떤 인텐트를 왜 쓰는지 물어보세요. 좋은 봇은 문서에 그것을 나열합니다. 여러분 자신의 봇이라면, 개발자 포털의 Bot 페이지를 열고 토글을 코드가 요청하는 것과 비교하세요. 불일치가 가장 먼저 고칠 것입니다.
자주 묻는 질문
봇이 인텐트를 요청하지 않으면 어떻게 되나요?
Discord는 일치하는 이벤트를 보내지 않습니다. 봇은 온라인으로 남지만, 그 일들에 반응할 수 없습니다.
내 봇의 인텐트는 어디서 켜나요?
Discord 개발자 포털에서 애플리케이션을 열고, Bot으로 가서 필요한 특권 인텐트를 켜세요.
모든 인텐트가 특권인가요?
아니요. 프레즌스, 서버 멤버, 메시지 내용만 특권입니다. 나머지는 자유롭게 쓸 수 있습니다.