discordにHubotを呼ぶ

  • 25
    いいね
  • 0
    コメント

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とかが見えちゃってたら怖いし……
こんな説明でごめんなさい!!