LoginSignup
36
38

More than 5 years have passed since last update.

イチからDiscord Bot 。for Ruby

Last updated at Posted at 2017-05-22

※基本的なCUI操作などは説明がないです。

DiscordのBotで検索しても、みんなPythonの話しかしてない。
あまりに情報が少なくて辛かったので、今から作ろうとしている人に、残していきます。

OS:windows10 (CentOS,Raspbian)
環境:Ruby2.3.3

Discordrbの紹介

discordでbotを作るためのgem ...だけだと味気ないので少々詳しく。
discordには、外部からテキストチャット、ボイスチャットなどにアクセスできるAPIがあります。
discordrbはそれらのAPIをrubyらしくいじれるようにしたラッパーです。GitHubのwikiやClassListが充実しているので、初心者でも(英語を)頑張れば使えると思います。

Discordrbのインストール

Discordrbはgemに登録されているので、かんたんに導入できます。

$ gem install discordrb

もちろん、 Bundlerでも使えます。Gemfileに
gem 'discordrb' と追記して $ bundle install

hello,worldのコードを書く

お好みのエディタで以下のコードを書いてみてください。

hello.rb
require 'discordrb'

bot = Discordrb::Commands::CommandBot.new (
token: TOKEN,
client_id: CLIENT_ID,
prefix:'/',
)

bot.command :hello do |event|
 event.send_message("hallo,world.#{event.user.name}")
end

bot.run

hello.rbと名前を付けて保存。
TOKENとCLIENT_IDについては後々説明します。
これで /hello と打つと、 hello,[UserName]. と返ってくるbotができました。
(hello,worldじゃないやん)

DiscordにBotを登録する

discordには登録しているものとして話を進めます。
登録してない方は -> https://discordapp.com/register

  1. 次ののURLでNewAppをクリック https://discordapp.com/developers/applications/me
  2. APP NAMEを決めて、「Create App」をクリック
  3. 「Create a Bot User」をクリック
  4. Client ID(18桁くらいの数字)とToken(click to revealをクリックして出てきた英数字)をメモ
  5. 以下のURLに、Client IDを置き換えてアクセス
    discordapp.com/oauth2/authorize?client_id=Client ID&scope=bot&permissions=0
  6. 接続させたいサーバーを選択

登録完了。

botを起動

まず、さっき書いたコードを開いて、メモしたClient IDとTokenを、それぞれCLIENT_IDとTOKENに書き換えます。
その後、コマンドプロンプト(ターミナル)で $ ruby hello.rb でbotが起動されます。

Discord上で/hello

ちゃんと返って来たら、正常に稼働しています。
お疲れ様でした。

どうだったでしょうか?ちゃんと動きましたか?
もしダメなときはコメント頂けたら、お手伝い出来るかもしれません。(気まぐれで)

参考サイト

36
38
9

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
38