Ruby 로 디스코드 봇 만들기
이전 저는 아는 형의 부탁으로 Gambler 라는 디스코드 봇을 만든 적이 있습니다.
당시에는 GoLang 을 좀 더 깊게 파보고 싶기도 했었고 봇 클라이언트 하나와 DB 만 있으면 충분했기 때문에 봇 클라이언트만 구현해서 배포를 했었습니다. 하지만 봇이 어느정도 활성화 되면서 새로운 서비스를 제공하고 싶어 웹 페이지가 필요하기도 했고 봇 클라이언트를 재배포 하지 않아도 유동적으로 특정 값을 바꿔줄 수 있으면 좋겠다는 의견도 나오게 되어 이를 위해 웹 서버를 구축했습니다.
그런데 작업을 진행 할 수록 기존에 나눠두었던 봇 클라이언트를 따로 둘 필요 없이 서버에 같이 포함해서 빌드하면 좋겠다는 생각이 들었고 제가 자주 사용하는 레일즈에 맞춰 루비에 맞는 봇 클라이언트 라이브러리를 찾다가 찾게 되어 이참에 라이브러리와 봇 생성에 대한 방법을 정리해보려고 합니다.
찾은 디스코드 루비 라이브러리는 discordrb 라고 합니다.
설치 방법은 README.md 에 적힌 내용을 참고해서 설치하면 됩니다.
gem 'discordrb' # 혹은 gem install discordrb
사용 방법도 굉장히 간단한 편으로 examples 에 있는 ping pong 예제를 가져오겠습니다.
require 'discordrb'
bot = Discordrb::Bot.new token: 'B0T.T0KEN'
bot.message(content: 'Ping!') do |event|
event.respond 'Pong!'
end
bot.run
코드를 보면 토큰을 입력 받아야하는 부분이 있는데 이 부분은 Discord 홈페이지에서 발급 받아야 합니다.
개발자 등록을 어떻게 했는지 기억은 안나지만 링크에 접속합니다.
상단의 New Application 버튼을 클릭해 앱을 생성합니다.
생성 하시게 되면 다음과 같은 화면으로 이동하는데 좌측의 Bot 탭으로 들어가 봇을 생성 합니다. (만약 앱 이름이 같다면 봇이 생성이 안될 수도 있으니 그럴 경우엔 이름을 변경해주시면 됩니다.)
그 후 토큰을 생성합니다. (이후에 가려지니 어디에 복사해두시면 편합니다.)
복사한 토큰 을 봇 코드에 넣어주시면 됩니다.
다음 글에서는 디스코드 봇과 레일즈를 같이 실행해서 개발하는 방법에 대해서 알아보겠습니다.