JoungSik/Ruby 로 디스코드 봇 만들기

Created Wed, 23 Mar 2022 00:40:19 +0900 Modified Sat, 31 Dec 2022 01:31:35 +0900

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 버튼을 클릭해 앱을 생성합니다.

1

2

생성 하시게 되면 다음과 같은 화면으로 이동하는데 좌측의 Bot 탭으로 들어가 봇을 생성 합니다. (만약 앱 이름이 같다면 봇이 생성이 안될 수도 있으니 그럴 경우엔 이름을 변경해주시면 됩니다.)

3

4

그 후 토큰을 생성합니다. (이후에 가려지니 어디에 복사해두시면 편합니다.)

5

6

복사한 토큰 을 봇 코드에 넣어주시면 됩니다.


다음 글에서는 디스코드 봇과 레일즈를 같이 실행해서 개발하는 방법에 대해서 알아보겠습니다.