2018-08-07
#discord
#ruby
#discordrb
Qiitaから記事を移動してきました。著作者は同一です。
元記事: イチからDiscord Bot 。for Ruby
※基本的なCUI操作などは説明がないです。
DiscordのBotで検索しても、みんなPythonの話しかしてない。 あまりに情報が少なくて辛かったので、今から作ろうとしている人に、残していきます。
OS:windows10 (CentOS,Raspbian) 環境:Ruby2.3.3
discordでbotを作るためのgem ...だけだと味気ないので少々詳しく。
discordには、外部からテキストチャット、ボイスチャットなどにアクセスできるAPIがあります。
discordrbはそれらのAPIをRubyらしくいじれるようにしたラッパーです。GitHubのwikiやClassListが充実しているので、初心者でも(英語を)頑張れば使えると思います。
discordrbはgemに登録されているので、かんたんに導入できます。
$ gem install discordrb
もちろん、 Bundlerでも使えます。Gemfileに
gem 'discordrb'
と追記して $ bundle install
お好みのエディタで以下のコードを書いてみてください。
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には登録しているものとして話を進めます。 登録してない方は -> https://discordapp.com/register
登録完了。
まず、さっき書いたコードを開いて、メモしたClient IDとTokenを、それぞれCLIENT_IDとTOKENに書き換えます。
その後、コマンドプロンプト(ターミナル)で $ ruby hello.rb
でbotが起動されます。
ちゃんと返って来たら、正常に稼働しています。 お疲れ様でした。