BETA

ローカルのMacOS環境で動くRailsアプリにTwilioを組み込んで動作確認する

投稿日:2020-02-14
最終更新:2020-02-14

これなに?

  • ローカルのMacOS環境で動くRailsアプリに twilio を組み込みます
  • 特定の電話番号に電話したら、定形メッセージを返すだけの機能です
  • Railsは6.x系です

手順

1. Twilioのアカウント作成

twilio に行ってアカウントを作成します。
無料でアカウントを作れて、トライアルとしてUSの電話番号が1つもらえます。

2.コード修正

Gemfile

gem 'twilio-ruby', '>= 5.0.0'  

Controller

twilio_controller.rb というファイルをControllerに作ります

require 'twilio-ruby'  

class TwilioController < ApplicationController  

  skip_before_action :verify_authenticity_token  

  def index  
    response = Twilio::TwiML::VoiceResponse.new  
    response.say(voice: 'woman', language: 'ja-JP', message: 'お電話ありがとうございます。今日はいい日ですね。')  

    render xml: response.to_s  
  end  

end  

response.say(voice: 'woman', language: 'ja-JP', message: 'お電話ありがとうございます。今日はいい日ですね。')
ここで定形メッセージを設定しています。
何も設定しないと英語になったりします。

ルーティング

config/routes.rb に追加したControllerのルーティングを追加します

post 'twilio/index' => 'twilio#index'  

3. 電話番号と紐付け

ローカルアプリの起動

まずは rails s でrailsアプリを起動します。

ngrokの起動

このままだと localhost での起動なので、ngrokを使って外からアクセスできるようにします。

$ ./ngrok http 3000  

Twilioコンソールで設定

Twilioのコンソールへ行き、電話番号の設定から下記のように設定します

A CALL COMES IN のところですね。
この設定を save すれば、電話番号に電話がかかってくると、
https://4e5bc4e4.ngrok.io/twilio/index へリクエストが来るということになります。

4e5bc4e4 は環境によって変わるので読み替えてください

さあ、試してみましょう!

感想

  • Twilioのチュートリアルがやたら読みやすかった

メモ

rails 6.x系からドメイン指定が必要なので、設定を忘れずに...

config/application.rb

config.hosts << "hogehoge.ngrok.io"  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@takahashino1の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう