LoginSignup
30
31

More than 5 years have passed since last update.

RailsでTwilioを使ってみた

Posted at

twilioとは

twilioは電話や音声メッセージ、SMSなどを使うことの出来るAPIである。日本語のドキュメントも用意されていて簡単に使えて便利なのだが無料版では使い勝手が凄く悪いので個人で利用する場合は有料アカウントをとらざる終えない場合になってしまうことが多い

ドキュメント

公式
公式チュートリアル
git ruby

電話基本
便利ツール

電話機能の使い方

まずは公式ページでアカウント登録をしてtwilow電話番号を取得する

sid, token、twilioの電話番号を取得する(取得するのは米の電話番号が良いですよ!)

その後、Gemのインストールをします

gem
gem "twilio-ruby"
ターミナル
bundle

modelの中に作成したcall.rbに記述するだけ

model
class Call
  def self.voice_message
    account_sid = ENV['TWILIO_SID']#中身は自分のものに変える
    auth_token = ENV['TWILIO_TOKEN']#中身は自分のものに変える
    client = Twilio::REST::Client.new(account_sid, auth_token)
    client.account.calls.create(
      from: '+8100000000', # twilio電話番号
      to:   '+8100000000', # 宛先の電話番号
      url: 'http://huntr-static.s3.amazonaws.com/mother/call.xml', #再生される音声の内容が書かれたxmlのURL
      method: 'GET', #defaltではこれがpostになっているためCall内容が反映されずエラーになるから気をつける
    )
  end
end

あとはこのメソッドを呼びだす

コンソール
Call.voice_message

とするだけでxmlがパースされたコンテンツの電話がかかってくる

ちなみURLの内容は

xml
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say language="ja-jp">おかんから、メッセージがあります</Say><!--読み上げられる内容-->
    <Play>http://huntr-static.s3.amazonaws.com/mother/test.mp3</Play><!--再生されるmp3-->
</Response>

のような感じで実装できる

今回私はサイバーダックを使ってファイルをアップしたが勿論なんでもいい
*ただしサイバーダックを使う場合はすべてのファイルをeveryone readのアクセス設定にしてないとエラーとなるので気をつけてください

SMS機能の使い方

gemをインストールするまでは同じ
あとはコントローラーの中身を変えるだけ

コントローラー
class SmsSender
  def self.send_sms
    account_sid = ENV['TWILIO_SID']
    auth_token = ENV['TWILIO_TOKEN']
    client = Twilio::REST::Client.new(account_sid, auth_token)
    client2 = Twilio::REST::Client.new(account_sid, auth_token)

    client.account.messages.create(
      from: '+0000000',
      to:   '+00000000',
      body: "ヽ(・∀・)人(・∀・)ノ文章の中身ヽ(・∀・)人(・∀・)ノ",
    )

*注意 取得したtwilioの電話番号が日本のものである場合はSMSは使えないので注意しましょう。アメリカの電話番号でないとこの機能は使えません。このことに気づかず長い時間を無駄にしました( *´Д⊂ グスン…

30
31
0

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
30
31