Help us understand the problem. What is going on with this article?

イチから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

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

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

参考サイト

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした