Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

はじめに

極端に面倒臭がり屋なぼくは、 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 起きろ!
こんな感じ。

hbkr
キャンプファイヤーの家入です
http://ieiri.net
campfirejp
国内最大の流通を誇るクラウドファンディングサービス「CAMPFIRE」の企画・開発・運営を行うスタートアップです
https://camp-fire.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away