2018/6/2 更新
新しく書き直しました
質問等があればコメント欄またはDiscordサーバーでどうぞ!
OS: Windows 10
言語: Ruby
Discordにチャットを打つと
Botが”Hello, world!”と返すプログラムを作成します。
1. Ruby の インストール
既にインストール済みの場合はスキップしてください。
C:\Users\test> ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
Development Kit のインストール
2. discordrb の インストール
Rubyから Discord API を利用できるようにする
discordrb というGemをインストールします。
- コマンドプロンプトで以下のコマンドを実行する。
C:\Users\test> gem install discordrb --platform=ruby
以下のようなメッセージが出たらインストール完了です。
Done installing documentation for ~省略~ ~~ gems installed
3. Discord – アカウント登録
- ここから新規登録をする
-
ログインをして、サーバーを作成する
4. Discord – Botの登録
-
ここを開いて New App をクリック。
-
APP NAME にBotの名前を入力して
Create App をクリック。 -
Botの詳細ページが出てくるので
Create a Bot User をクリック。 -
Client ID と token をコピーしてメモ帳にでも貼り付けておきます。
-
discordapp.com/oauth2/authorize?client_id=Client ID&scope=bot&permissions=0
をブラウザで開いて サーバー選択 で作成したサーバーを選択して
認証 をクリック。 -
サーバーにBotが追加されたことを確認する。
5. Discord – プログラムの作成
Botのテスト用プログラムを作成します。
- エディタを開く
個人的には Atom というエディタが非常にオススメです。 -
Atomで以下のコードを入力した後、test.rbというファイル名でデスクトップに保存します。
(tokenとclient_idは手順4でメモ帳に控えたものを貼り付ける)
require 'discordrb' bot = Discordrb::Bot.new token: 'コピーしたtokenをここに貼り付ける', client_id: コピーしたClientIDをここに貼り付ける bot.message do |event| event.respond 'Hello, world!' end bot.run
6. Discord – プログラムの実行
- コマンドプロンプトでtest.rbを実行する
C:\Users\test> cd C:\Users\ユーザー名\Desktop C:\Users\test> ruby test.rb
Discordを開いて、何か文字を打つと
Hello, world!と返ってくることを確認する。
以上、簡単なBotの作り方でした。
2016年12月12日 at 2:39 午後
こんにちわ。最近Discordを使い始めた者です。こちらを参考にして作成をしてみたのですが
まず作成したBOTがオフラインのままになってしまいます。
何度か上から順にやり直しもかけていますが改善しません。
もし何か思い当たる原因などがあれば教えて頂ければ幸いです。よろしくお願いいたします。
いいねいいね
2016年12月18日 at 4:57 午後
返信が遅くなり申し訳ありません。
当ブログで載せていた方法は6ヶ月前の古い情報でした。
現在の作り方と若干異なっていましたので、
記事の更新を致しました。
恐らく、application_idをclient_idに書き換えると動くと思われます。
また何か質問があれば
DiscordまたはTwitterのDMでお願いします。
Twitter: @takumi091111
Discord: Asamac#9352
いいねいいね
2017年3月22日 at 4:29 午前
コメント失礼します。
こちらの手順通りにやったのですが、手順5からよく分からないのでコメントさせていただきました。
手順5は書いてある事をそのままatomの方へペーストして、.rbファイルで保存したら良いのでしょうか?
いいねいいね: 1人
2017年4月20日 at 11:17 午後
返信が遅くなり申し訳ありません。
プログラムのコードをAtomに貼り付けた後、
3行目の「コピーしたtoken」、「コピーしたClient ID」の部分を、
手順4でメモしたtokenとClient IDに書き換えて下さい。
いいねいいね: 1人
2017年4月27日 at 8:43 午前
手順6、プログラムの実行で
Using WSCS version: 0.3.0
libsodium not available! You can continue to use discordrb as normal but voice support won’t work.
Read https://github.com/meew0/discordrb/wiki/Installing-libsodium for mo
re details.
talk.rb:3:in `’: uninitialized constant (NameErro
r)
と出てしまいます。どうするのが最善でしょうか?
いいねいいね
2017年4月28日 at 11:26 午後
プログラムのコードを見なければ確実なことは分かりませんが、
3行目で何かしらのエラーが起きています。
tokenを囲っているシングルクォーテーションが全角になっていませんか?
入力できていれば、以下の画像のようなコードになるはずです。
https://t.co/MNXkqifdln
いいねいいね
2017年5月10日 at 1:07 午前
始めまして、質問です。
起動までうまく行ったのですが
再生したい曲はどこに入れればいいですか?
いいねいいね
2017年5月11日 at 3:19 午後
好きな場所に置けば良いと思います。
サンプルプログラムでは
voice_send.rbと同じフォルダに「data」というフォルダを作成して
その中に「music.mp3」を入れています。
voice_bot.play_file(‘data/music.mp3’)
もし、デスクトップにある「music.mp3」というファイルを再生したいのであれば
voice_bot.play_file(‘C:/Users/あなたのユーザー名/Desktop/music.mp3’)
という風に指定してあげればOKです。
絶対パスや相対パスについて調べると良いかもしれません。
いいねいいね
2017年7月13日 at 5:07 午後
初めまして。質問があるのですが、このBotに複数のメッセージに対して対応をさせることは可能なのでしょうか。
例:
[私]Test
[Botの返信]Test
[私]Test2
[Botの返信]Test2
このような感じです(わかりにくくてすみません。)
暇があるのでしたら、よければお返事をください。
いいねいいね
2017年7月18日 at 1:53 午前
可能です。
添付した画像のように、メッセージの内容で条件分岐させればできますよ。
http://imgur.com/dKHtOzl
http://imgur.com/NPltMai
いいねいいね
2017年8月30日 at 8:29 午後
返信ありがとうございます。
いいねいいね
2017年7月20日 at 6:53 午後
中級編も見たいです
頑張って下さい!
いいねいいね: 2人
2017年10月28日 at 2:54 午前
この記事を見てRubyに触れ始めたものです。
botに特定の言葉、例えば ”なにか言って” などといった場合に、元々配列などに格納しておいたもの “こんにちは” や ”こんばんは” などを乱数を生成して、その乱数番目にある文字列を表示するというものは可能でしょうか?色々調べて実行してみましたが、うまく動きません。
お時間ございましたら、お返事お願いします。
いいねいいね
2017年11月7日 at 9:34 午後
こちらにプログラムのコード、実行結果をまとめました。
https://imgur.com/a/mJkFn
ご参考になれば幸いです。
いいねいいね
2018年9月8日 at 4:15 午後
スマホでも、できますか?
いいねいいね
2018年9月27日 at 2:45 午後
AndroidのスマートフォンならTermux等を利用すればできるかもしれませんが
コードを書くのが辛かったり
Linuxに関する知識を要求されると思うので
おすすめはしません。
いいねいいね