Edited at

イチからDiscord Bot 。for Ruby

More than 1 year has passed since last update.

※基本的な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

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

お疲れ様でした。

どうだったでしょうか?ちゃんと動きましたか?

もしダメなときはコメント頂けたら、お手伝い出来るかもしれません。(気まぐれで)


参考サイト