twilioとは
twilioは電話や音声メッセージ、SMSなどを使うことの出来るAPIである。日本語のドキュメントも用意されていて簡単に使えて便利なのだが無料版では使い勝手が凄く悪いので個人で利用する場合は有料アカウントをとらざる終えない場合になってしまうことが多い
ドキュメント
電話機能の使い方
まずは公式ページでアカウント登録をして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は使えないので注意しましょう。アメリカの電話番号でないとこの機能は使えません。このことに気づかず長い時間を無駄にしました( *´Д⊂ グスン…