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
バージョンの指定を変更しておきます。
$ vim 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を確認する
選択したサーバに入ってみると……
サーバでBotがオンラインになっていれば成功です。
もしもオフラインになっていた場合は、上手く起動できていない可能性があります。
Herokuのlogを確認してみましょう。
ping
にもPONG
を返してくれています!!
以上です。
最後に……
もっと画面の説明とかキャプチャ撮れば良かった……
けれど、ClientIDとかTokenとかが見えちゃってたら怖いし……
こんな説明でごめんなさい!!