283
272

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HubotとTwilio APIを使ってSlackから電話をかけてピザを注文してみる

Last updated at Posted at 2015-05-31

はじめに

極端に面倒臭がり屋なぼくは、 Slack から出前ピザが注文できたらいいなと思いついたので Hubot スクリプトを書いてみることにしました。

実行例

e090d641ed73da816587b004f7d5d56d.png

hubot call +818044431800 起きろ! てな感じで命令すると、電話して合成音声でメッセージを話してくれます。画像の電話番号は僕の携帯ですが、モザイクをかけるのも面倒なので気にしないでください。

電話番号に + がない場合 Twilio は from 番号と同じ国番号を使うそうなので、この例では頭の 0 を取った番号に日本の国番号 +81 を追加しています。

Hubot の導入

導入については下記の記事を参考にしてください。bouzuya さんかっこいいです。

Slack で Hubot を使えるようにする
Hubot / ChatOps とは

Twilio への登録、ID の取得など

電話をかけるために、なにはともあれ Twilio への登録をします。アカウントを登録したら、アカウントセッティングのページに行き AccountSIDAuthTokenコール元の電話番号 をひかえます。

そうそう、トライアルではひとつの番号にしかかけられないため、色んな番号にかけたいのであればクレジットカードの登録が必要です。

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 起きろ!
こんな感じ。

283
272
5

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
283
272

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?