LoginSignup
31
31

More than 5 years have passed since last update.

discordにHubotを呼ぶ

Last updated at Posted at 2016-06-06

discordという、slackに通話機能を足したような、ゲーマー用のチャットシステムがあります。
もうぶっちゃけ殆どslack……で、やっぱりBotも作れるみたい。

なので、今回はBotを作成してping PONGまでさせてみようと思います。

今回呼ぶ(作成する)Botは松岡美羽ちゃん!
yoコマンドやhubotを作成するコマンドは入っている前提でお話します……
ここいらのインストールはSlackでHubotな記事を参照してみて下さい。

discordアダプターを入れる

$ npm install -g hubot-discord

今回はHubotのアダプターとしてthetimpanist/hubot-discordを使わせて頂きます。

Bot作成

$ mkdir miu
$ cd miu
$ yo hubot
                     _____________________________  
                    /                             \ 
   //\              |      Extracting input for    |
  ////\    _____    |   self-replication process   |
 //////\  /_____\   \                             / 
 ======= |[^_/\_]|   /----------------------------  
  |   | _|___@@__|__                                
  +===+/  ///     \_\                               
   | |_\ /// HUBOT/\\                             
   |___/\//      /  \\                            
         \      /   +---+                            
          \____/    |   |                            
           | //|    +===+                            
            \//      |xx|                            

? Owner shyazusa <shy.azusa@gmail.com>
? Bot name miu
? Description A simple helpful robot for your Company
? Bot adapter discord
   create bin/hubot
   create bin/hubot.cmd
   create Procfile
   create README.md
   create external-scripts.json
   create hubot-scripts.json
   create .gitignore
   create package.json
   create scripts/example.coffee
   create .editorconfig
                     _____________________________  
 _____              /                             \ 
 \    \             |   Self-replication process   |
 |    |    _____    |          complete...         |
 |__\\|   /_____\   \     Good luck with that.    / 
   |//+  |[^_/\_]|   /----------------------------  
  |   | _|___@@__|__                                
  +===+/  ///     \_\                               
   | |_\ /// HUBOT/\\                             
   |___/\//      /  \\                            
         \      /   +---+                            
          \____/    |   |                            
           | //|    +===+                            
            \//      |xx|

? Bot adapterと訊かれたらdiscordと入力してEnter。それ以外はEnter連打でも大丈夫です。

discordでアプリ作成

ここまで来たら一旦ターミナルとはお別れです。
discordから新しいアプリケーションを作成しましょう。
Discord - Developer Documentation
ここのMy Applicationsから新規アプリを作成。

アプリの名前を入力してアプリアイコンを決めたら、Create Applicationをクリック。(アプリアイコンは後からでも変えられるっぽい?ここは未体験)

すかさずCreate a Bot User押下。
APP BOT USERの欄が出現すると思うので、それの中のToken:の横のclick to revealをクリックしてTokenを取得。
このTokenの値はクリップボードにでもコピーしておきます。

再びターミナルへ

ターミナルへ戻って
package.json内の"engines":内のnodeバージョンの指定を変更しておきます。
zsh
$ vim package.json

package.json
  "engines": {
    "node":"0.12.7"
  }

Crash on Heroku · Issue #6 · thetimpanist/hubot-discord
ここにも書かれている通り、そのままHerokuへ上げるとnodeのバージョンがどうとかでクラッシュします。

herokuへアップロード

$ git init
$ git add .
$ git commit -m "first commit"
$ heroku create [アプリ名]
$ git push heroku master
$ heroku config:set HUBOT_DISCORD_EMAIL="自分のアドレス"
$ heroku config:set HUBOT_DISCORD_PASSWORD="自分のパスワード"
$ heroku config:set HUBOT_DISCORD_TOKEN="クリップボードにコピーしたトークン"

Herokuに上げたら、HerokuのBotのURLをクリップボードにコピーしておきます。

再びdiscordのアプリ設定画面へ

ここまで来たらもう少しです。

Botの名前入力欄右の、REDIRECT URI(s)からAdd a Redirectで、herokuのURLをペースト。
一度Save Changesして、APP DETAILS欄の中のClient/Application ID:の後の数字をコピーしましょう。

https://discordapp.com/oauth2/authorize?client_id={コピーしたClient/Application ID}&scope=bot
にアクセスします。

自分のBotを呼びたいサーバをプルダウンから選んでAuthorizeをクリックします。(目的のサーバが表示されない場合、権限を持っていないかもしれません。サーバの管理者から権限を頂きましょう……。)

Botを確認する

選択したサーバに入ってみると……

スクリーンショット 2016-06-06 22.41.12.png

サーバでBotがオンラインになっていれば成功です。
もしもオフラインになっていた場合は、上手く起動できていない可能性があります。
Herokuのlogを確認してみましょう。

スクリーンショット 2016-06-06 22.42.23.png

pingにもPONGを返してくれています!! :tada:

以上です。

最後に……

もっと画面の説明とかキャプチャ撮れば良かった……
けれど、ClientIDとかTokenとかが見えちゃってたら怖いし……
こんな説明でごめんなさい!!

31
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
31