문서 조회수 확인중... Show 1. 개요 5. C# (Discord.net) 6. Go (Discordgo) 7. Bot Designer For Discord 9. Discord Bot Maker 1. 개요[편집]다음은 디스코드 비공식 API로 봇을 만드는 방법, 예제를 나열한 것이다. 참고로 이 문서에 서술되어 있는 라이브러리는 전부가 아니다. Dart, elixir, swift, rust, lua, php 등등 정말 많은 라이브러리가 있으니 참고해보자.# 여담으로 이러한 봇 외에도 자신만의 디스코드 클라이언트를 만들 수 있다.[1] 2. 파이썬 (discord.py)[편집]공식 영문 문서 어떤 클래스, 메서드 등이 있는지는 이 곳에서 볼 수 있다. 2021년 8월 28일, discord.py의 개발을 중단했다. 해당 공지 2022년 현재, discord.py의 개발이 중지 된 것은 맞지만, 여전히 사용가능하긴 하다. (v7 지원 종료시까지 사용 가능) 2022년 3월 6일부로 discord.py의 개발이 재개되었다.# 패키지 설치:
예시(ext 사용):
예시(Client 사용):
이 문서에서 개요와 프로그래밍 방법을 더 자세히 볼 수 있다. 추가로 intents 기능은 discord 개발자 웹사이트에서 Bot 항목 제일 하단에서 활성화 할 수 있다. 3. Node.js (discord.js)[편집]디스코드 JS 패키지 문서 다음은 discord.js 웹페이지에 나와있는 예시 코드이다.
그리고 공식 문서에는 없지만 주로 쓰이는 메세지 이벤트 리스너를 Array(배열)로 처리하는 방식이 있다.
이 코드들 말고도 파일을 나누어 핸들링하는 방법도 있고, 또 이미 만들어진 Commando[2] 를 이용하는 방법도 있다. 자세한 내용은 문서를 참고하자. 4. Java (JDA)[편집]JDA라는 라이브러리를 Maven 프로젝트 또는
Gradle 프로젝트에서 가져올 수 있다. 자세한 내용은 여기를 참고하면 된다. 아래는 위키에 나와있는 간단한 예시 코드이다.
5. C# (Discord.net)[편집]Discord.net은 .Net Core 2.0 이상부터 지원한다. 아래 코드는 간단한 ping 예시 코드이다.
Discord.net 팀에서 샘플하고 문서를 제공하니 참고하자. 6. Go (Discordgo)[편집]
7. Bot Designer For Discord[편집]7.1. 소개[편집]디스코드 봇 제작/호스팅을 위한 해외 앱이다. Android/iOS 모두 사용 가능하며 한국어 번역은 지원하지 않는다. 7.2. 만드는 방법[편집]우선 오른쪽의 "Create new bot'을
눌러 봇의 이름과 토큰을 입력한다. 우선 개발자 포털에서 앱을 만들어야 한다. 7.3. 코드 예시[편집]아래는 직접 작성한 코드이다. $nomention $randomText[안녕하세요 $username님!;$username님
안녕하세요!] 예를들어 사용자명이 namuwiki#0001이라면 안녕하세요 namuwiki#0001님! 또는 namuwiki#0001님 안녕하세요! 중에 하나를 랜덤으로 반응한다. 위에서도 말했듯이 영어이기 때문에 우선 영어를 공부한 후 본 앱을 접하는 것을 강력히 추천한다. 8. Discord API[편집]디스코드 공식 API를 직접 이용해 봇을 만들 수 있다. 위에 나와있는 비공식 라이브러리들을 안 쓰고 작동 기반을 직접 만든다고 보면 된다. 앱을 만들 수 있다. 하지만 공식 API특성상 초보들한텐 추천하지 않는다.[4] 왜냐하면 디스코드 API는 많이 복잡하기 때문이다. 봇이 웹소켓 통신을 시작하면 JSON 데이터로 OP코드, 토큰, 라이브러리 등 정보를 보내야하고[5] , 또 봇이 켜져있게 하고 웹소켓을 계속 연결하고 싶다면 일정한 주기로 Heartbeat를 보내야 하는데 또 이건 멀티 스레딩 또는 비동기를 모르는 사람에게는 불가능한 일이다. 심지어 디스코드에선 랜덤하게 Reconnect코드를 보내는데 이러면 아까 Identify 데이터에 최근 시퀀스 숫자까지 보내야 한다. 정말 프로그래밍 입문자라면 거들떠도 보지않는걸 추천한다.[6] 다만 바꿔말하자면 HTTP통신과 웹소켓, 비동기에 관한 공부만 끝마친다면 어느정도의 센스와 함께 시행착오를 거치며 도전할 수 있는 주제라는 것이다. 사실 웹사이트나 매크로 등(심지어는 어플 하나만 만들려고 해도 디버깅에 통신은 필수다...)에 조금만 손을 대봤다면 알듯이 통신 관련 기능에 접근하려면 기본적으로 저러한 개념들을 알아야 가능하다.[7] 거기에 비동기는 거의 모든 프로그램들이 실용성을 가지게 만들어주는데 무조건적으로 필요한 개념일 정도. 각 프로그래밍 언어에서 기본 메서드나 함수만을 배운 사람들한테는 어려울 수 있어도, 어느정도 노하우를 갖춘 사람들과 모르는 것들을 직접 찾아보며 자신만의 기능을 가진 프로그램을 만들어보려 노력하는 사람들에게는 울고 웃으며 경험을 쌓을 수 있는 크나큰 기회다.[8] 으레 그렇듯이 어려운 문제일수록 해결과정 동안 기초적인 개념부터 어려운 응용까지 깊이 이해할 수 있다는 장점을 가지므로 너무 떨지말고 한번 도전해보는 것도 추천한다. 9. Discord Bot Maker[편집]
https://store.steampowered.com/app/682130/Discord_Bot_Maker/ 이름 그대로 Discord의 BOT을 자바스크립트 등등이 필요없이 간편하게 만들수 있는 Node.js 기반 프로그램이다. 스팀에서 9.99$(10,500원)에 판매중이며 깨끗한 UI와 초보자가 봇에 쉽게 입문할 수 있지만 좀 쓰다보면 거르고 자바스크립트로 갈아타는 경향이 있으니 차라리 사기 전에 위에 있는 Node.js를 사용하는것을 추천한다.[9] [10] GitHub에 Discord bot maker 전용 모드가 있는데 그걸 적용하면 디스코드에서 노래봇도 만들 수 있다. 이 문서의 내용 중 전체 또는 일부는 2022-07-14 18:22:44에 나무위키 Discord/봇/제작법 문서에서 가져왔습니다.[1] 다만 봇이 아닌 일반 계정으로 만든 봇에 로그인하는 것은 약관 위반이다.[2] discord.ext와 비슷한 개념이다. 자동화된 기능이 있다.[3] 위에 있는 비공식 라이브러리는 이 공식 API를 이용해서 제작되었다.[4] 공식 API를 이용하려면 최소한 웹소켓, HTTP 통신을 알아야 한다.[5] Identify를 전송하는 것이다.[6] 이게 끝이 아니다. 디스코드에서 서버를 확인하려면 특정 엔드포인트에서 REST API로 GET메서드를 보내고 메시지는 /channels/{channel id}/messages에 POST를 하는 등 아주 복잡하다. 심지어는 음성을 전달할 때 Opus 코덱으로 직접 인코딩하여 웹소켓으로 보내야한다.(...)[7] 다만 API문서에 나와있는 간단한 GET / POST 요청 정도는 봇 토큰만 있어도 간단한 웹 요청 클라이언트로도 가능하다[8] 또한 디스코드에 새 기능이 추가되면 공식 API에는 거의 바로 반영되지만, 비공식 라이브러리는 반영되는 데 시간이 걸리는 점도 있다. 이러한 이유로 디스코드의 새로운 기능을 사용하고 싶고 HTTP request는 아는데 웹소켓 부분에서 막히는 경우 비공식 라이브러리에 없는 기능만 직접 API에 request를 보내서 사용하기도 한다.[9] 아무래도 자바스크립트나 다른 코딩 언어에 비해 뒤쳐지는 부분이 없지않아 있다.[10] 또한 Discord Bot Maker는 유료지만 Node.js는 무료라는 점도 있다. |