質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.43%

  • Ruby

    8452questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

[Ruby]DiscordのBotを作成したいのですが、実行時のエラーで困っています。

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 53

ku_ro.3

score 2

プログラム参考元の記事を真似して、DiscordのBotを導入しようとしたのですが、エラーが出てしまいます。

# -*- encoding: utf-8 -*-
require 'discordrb'

TOKEN = 'NTMyOTAzMDAyMzY1ODg2NDY4.DxjSHg.h2-r0-tDZnqJNn4inIHh1M8XORg'
CLIENT_ID = 532903002365886468

# 通知用のチャンネルID
inform_channel = '#call'

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

# 誰かがvoice channelに出入りしたら発火
bot.voice_state_update do |event|
    # 発火させたユーザー名を取得
    user = event.user.name

    # もしデータが空だと抜けていったチャンネルを取得
    if event.channel == nil then
        # チャンネル名を取得
        channel_name = event.old_channel.name

        # 退出したことをinform_channelに通知
        bot.send_message(inform_channel, "@everyone #{user}#{channel_name}を出たで~")
    else
        # チャンネル名を取得
        channel_name = event.channel.name

        # 入室したことをinform_channelに通知
        bot.send_message(inform_channel, "@everyone #{user}#{channel_name}に入ったで~")
    end
end

# botを起動
bot.run
ruby calling_bot.rb
[INFO : websocket @ 2019-01-11 23:43:39.158] Discord using gateway protocol version: 6, requested: 6
[ERROR : et-1 @ 2019-01-11 23:43:56.729] Exception: #<RestClient::NotFound: 404 Not Found>
[ERROR : et-1 @ 2019-01-11 23:43:56.730] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/abstract_response.rb:249:in `exception_with_response'
[ERROR : et-1 @ 2019-01-11 23:43:56.731] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/abstract_response.rb:129:in `return!'
[ERROR : et-1 @ 2019-01-11 23:43:56.731] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:831:in `process_result'
[ERROR : et-1 @ 2019-01-11 23:43:56.731] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:738:in `block in transmit'
[ERROR : et-1 @ 2019-01-11 23:43:56.732] C:/Ruby26-x64/lib/ruby/2.6.0/net/http.rb:920:in `start'
[ERROR : et-1 @ 2019-01-11 23:43:56.732] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:722:in `transmit'
[ERROR : et-1 @ 2019-01-11 23:43:56.732] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:158:in `execute'
[ERROR : et-1 @ 2019-01-11 23:43:56.733] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:58:in `execute'
[ERROR : et-1 @ 2019-01-11 23:43:56.733] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient.rb:70:in `post'
[ERROR : et-1 @ 2019-01-11 23:43:56.733] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/api.rb:81:in `raw_request'
[ERROR : et-1 @ 2019-01-11 23:43:56.734] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/api.rb:112:in `request'
[ERROR : et-1 @ 2019-01-11 23:43:56.734] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/api/channel.rb:76:in `create_message'
[ERROR : et-1 @ 2019-01-11 23:43:56.734] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/bot.rb:367:in `send_message'
[ERROR : et-1 @ 2019-01-11 23:43:56.735] calling_bot.rb:30:in `block in <main>'
[ERROR : et-1 @ 2019-01-11 23:43:56.735] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/events/generic.rb:98:in `call'
[ERROR : et-1 @ 2019-01-11 23:43:56.735] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/bot.rb:1316:in `block in call_event'
[ERROR : et-2 @ 2019-01-11 23:44:01.105] Exception: #<RestClient::NotFound: 404 Not Found>
[ERROR : et-2 @ 2019-01-11 23:44:01.106] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/abstract_response.rb:249:in `exception_with_response'
[ERROR : et-2 @ 2019-01-11 23:44:01.108] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/abstract_response.rb:129:in `return!'
[ERROR : et-2 @ 2019-01-11 23:44:01.110] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:831:in `process_result'
[ERROR : et-2 @ 2019-01-11 23:44:01.112] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:738:in `block in transmit'
[ERROR : et-2 @ 2019-01-11 23:44:01.114] C:/Ruby26-x64/lib/ruby/2.6.0/net/http.rb:920:in `start'
[ERROR : et-2 @ 2019-01-11 23:44:01.118] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:722:in `transmit'
[ERROR : et-2 @ 2019-01-11 23:44:01.120] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:158:in `execute'
[ERROR : et-2 @ 2019-01-11 23:44:01.123] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient/request.rb:58:in `execute'
[ERROR : et-2 @ 2019-01-11 23:44:01.125] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/rest-client-2.1.0.rc1/lib/restclient.rb:70:in `post'
[ERROR : et-2 @ 2019-01-11 23:44:01.130] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/api.rb:81:in `raw_request'
[ERROR : et-2 @ 2019-01-11 23:44:01.132] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/api.rb:112:in `request'
[ERROR : et-2 @ 2019-01-11 23:44:01.133] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/api/channel.rb:76:in `create_message'
[ERROR : et-2 @ 2019-01-11 23:44:01.135] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/bot.rb:367:in `send_message'
[ERROR : et-2 @ 2019-01-11 23:44:01.140] calling_bot.rb:24:in `block in <main>'
[ERROR : et-2 @ 2019-01-11 23:44:01.141] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/events/generic.rb:98:in `call'
[ERROR : et-2 @ 2019-01-11 23:44:01.143] C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/bot.rb:1316:in `block in call_event'
Traceback (most recent call last):
        3: from calling_bot.rb:35:in `<main>'
        2: from C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/bot.rb:243:in `run'
        1: from C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/gateway.rb:179:in `sync'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/discordrb-3.3.0/lib/discordrb/gateway.rb:179:in `join': Interrupt


参考元と別ページのDiscordのBotに関する記述
ここによると、最初のinfoは出ても問題ないもののようです。

ERROR : et-1は入室した時に出たエラー、
ERROR : et-2は退室した時に出たエラーです。

最後のTracebackから始まる3文がエラー解決のカギなのではないかとは思いますが、分かりません。
どうかよろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

同じタグがついた質問を見る

  • Ruby

    8452questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。