はじめに
極端に面倒臭がり屋なぼくは、 Slack から出前ピザが注文できたらいいなと思いついたので Hubot スクリプトを書いてみることにしました。
実行例
hubot call +818044431800 起きろ!
てな感じで命令すると、電話して合成音声でメッセージを話してくれます。画像の電話番号は僕の携帯ですが、モザイクをかけるのも面倒なので気にしないでください。
電話番号に + がない場合 Twilio は from 番号と同じ国番号を使うそうなので、この例では頭の 0 を取った番号に日本の国番号 +81 を追加しています。
Hubot の導入
導入については下記の記事を参考にしてください。bouzuya さんかっこいいです。
Slack で Hubot を使えるようにする
Hubot / ChatOps とは
Twilio への登録、ID の取得など
電話をかけるために、なにはともあれ Twilio への登録をします。アカウントを登録したら、アカウントセッティングのページに行き AccountSID
と AuthToken
と コール元の電話番号
をひかえます。
そうそう、トライアルではひとつの番号にしかかけられないため、色んな番号にかけたいのであればクレジットカードの登録が必要です。
Hubot-twilio-call のインストール
npm install --save hbkr/hubot-twilio-call
GitHubに置いてるスクリプトを直接 hubot/scripts
配下にぶっこんでもらっても大丈夫ですが、下記依存モジュールの追加をお願いします。
npm install --save twilio querystring
環境変数のセット
上記 Twilio で取得したデータをセットします。
$ heroku create
$ heroku config:set HUBOT_TWILIO_ACCOUNT_SID=<Twilio AccountSID>
$ heroku config:set HUBOT_TWILIO_AUTH_TOKEN=<Twilio AuthToken>
$ heroku config:set HUBOT_TWILIO_FROM_PHONE_NUMBER=<取得した twilio の電話番号>
$ heroku config:set HUBOT_TWILIO_VOICE_TYPE=<man or woman>
$ git push heroku master
ピザを注文してみる
これで無事にSlack からピザを注文できるようになりましたので、ピザハット渋谷1丁目店に注文してみます。
ieiri> hubot +81354531112 東京都渋谷区道玄坂2-10-12株式会社キメラまで、ピザを1枚お願いします。
hubot> Calling to +81354531112
結果
合成音声が不審がられたのか、注文は通りませんでした。無念です。
おまけ
SMS送信機能もつけてみました。これはこれで便利かもですね。
hubot sms +818044431800 起きろ!
こんな感じ。