Google HomeでDiscordBotを操作してみる
この記事は
Kogakuin Univ Advent Calendar 2017 - Adventar
5日目の記事です。
さて、GooleHomeを買ってからしばらく経ちましたが皆さん如何お過ごしでしょうか。
最近はAmazon Echoが予約始まったり予約したのに注文できなかったり色々あるそうですね。
そんな流行りのスマートスピーカーでまた遊んでいきたいと思います。
作るもの
突然ですがDiscordって知ってますか?
グループ版Skype、Slack知って居る人ならばボイス版Slackというかまあそんな感じの
グループチャットアプリです。
ちなみにDiscordアドベントカレンダーもあるよ。見てね。
僕はニンテンドースイッチを買ってからというもの、
口の悪い人達とDiscordでボイスチャットしたりしているのですが
このDiscordにはBotという機能があるんですね。
LINEのりんなちゃんとかSlack使ってる人はそのままSlackのBotみたいなものを想像して頂ければ大丈夫なんですが、
要するにグループ内にお手伝いロボを設置できるんです。
定番なのは音楽Botですかね。
こんな感じでチャット欄にBotへの指示を打ち込むと(今回は「!play 〇〇(流してほしいBGM)」)、
Youtubeやニコニコで検索して流してくれます。
ん?
チャット欄に指示を打ち込む…?
そうなんです。ボイスチャットアプリなのに、
Botへの指示はテキストでやらないといけないんですよね。
Discord使ってる時って大体がゲーム中🎮だしコントローラー握ってるしでキーボード打つのが難しいんですよ。
かといって音声認識をDiscord内で行うってのも無理があるし仕方ないですよね。
こんな時にBotへの指示を代行してくれるアシスタントがいたらなあ…
あっ!!!
<ココニイルヨ!
いました。では作りましょう。
出来上がったものはこちらです。せっかちさんはこれ見て下さい↓
DiscordBotの作成
先ほど音楽Botを例に挙げたのですが今回はBotも自作します。
またスプラトゥーンかよ
どういうものかと言いますと、
スプラトゥーンでは友達同士で試合が出来る「プライベートマッチ」
という機能があるのですがそこで使える「Aさんはこのブキ!Bさんはこのブキ!」
とランダムに武器の振り分けをしてくれるBotです。
同じ武器ばっかじゃ飽きますからね。
今回はDiscord用Rubyライブラリのdiscordrbを使いました。
他にPythonのライブラリもあります。こっちを選んだのは何となくです。
Ruby使ったことのない僕にも使えたのでDiscordBot作るだけならRuby知らなくても大丈夫だと思います。
導入は色々記事があるのでそちらを見て貰うとして、
ソースコードをドン
gistc32956bad75c48f0916fd4e8c9d91d9d
後はRubyファイルを走らせると
Botくんが出てきます。
この時点でもうチャット欄にコマンドを打てば…
コマンドを打った人と同じチャンネルに居る人へブキを配布してくれます。
これでBot部分は完成!
次はこのコマンドを音声入力でGoogleHomeにやってもらいましょう。
IFTTTの作成
みんな大好きIFTTTでDiscordにコマンドを打つ…んですが、
IFTTTがまだDiscordと連携していないので、webhook経由でDiscordと繋ぎましょう。
こちらはTwitter投稿→Didcordへ投稿ですが、
Twitter部分をGoogleHomeのGoogleAssistantへ変えればOKです。
チャンネルを右クリックし、チャンネルの編集
webhooksからwebhookを作成。
ここからIFTTTの作業になります。
NewAppletからIfはGoogleAssistantの"Say a simple phrase"でDiscordBotを呼び出しするフレーズを設定します。今回は「ディスコード 武器」にしました。
他にも「discord 武器」「ディスコード ぶき」などを設定しておいて認識ズレを減らしておきます。
Thatはwebhookを選択します。
Bodyのcontentがチャットに書き込まれる内容なので、
ここでBot呼び出しのコマンドを設定します。
完成!
以上でセッティングは完了!早速呼び出してみましょう。
OK,Google!
ディスコード、ぶき!
「ディスコードに投稿しました」と返してくれます。
IFTTTが発火!
Discordに来ました!(動画のキャプ荒くてすいません)
チャンネル内に居る人へ
botがブキを指定してくれました!
動画はこちら
これでまた一層スプラトゥーンが楽しくなるのではないでしょうか!
Discordの技術的な記事が中々無いので僕も頑張っていきたい所ですね。
盛り上がれ盛り上がれ…
ではまた!
アドベントカレンダーはまだまだ続く…
Kogakuin Univ Advent Calendar 2017 - Adventar
(スマートスピーカーアドカレは埋まってました)