SMS送信にtwilioを使ってみたのでメモがてらざっとまとめていきます。
はじめに
twilioからgemが提供されてるのでインストールします。
gem 'twilio-ruby', '~> 4.2.1'
twilioでSMS送信する場合は、SMS対応している国の電話番号を購入する必要があります。
まあ無難に+1(Canada)の番号を購入すればOKです。
さっそく使ってみる
sidやtokenは同じものを使っていくのでまずはconfigに設定ファイルを準備します。
# config/initializers/twilio.rb require 'twilio-ruby' Twilio.configure do |config| config.account_sid = TWILIO_ACCOUNT_SID config.auth_token = TWILIO_AUTH_TOKEN end
SMSを送信する
準備ができたのでさっそくSMS送信。
client = Twilio::REST::Client.new client.messages.create( from: "+14159341234", to: "+18004567890", body: "hello world!" )
送信したSMS一覧を取得する
listリソースを使って一覧を取得します。
client = Twilio::REST::Client.new @list = client.messages.list
ページングを実装したい場合は、next_page
メソッドを使うか、after_sid
パラメータを利用すればOKです。
# next_pageを使う @list = @list.next_page # 取得した最後のsidをafter_sidに渡す。こっちのほうが使い勝手が良い。 @list = client.messages.list(after_sid: @list.last.sid)
送信元、送信先でフィルタリングすることもできます。
# toで絞込 @list = client.messages.list({to: "+14159341234"}) # fromで絞込 @list = client.messages.list({from: "+18004567890"})
コールバックを指定する
メッセージのステータスが変更されるたびに叩かれるコールバックURLを指定できます。
client = Twilio::REST::Client.new client.messages.create( from: "+14159341234", to: "+18004567890", body: "hello world!", status_callback: "http://your.domain.com/call-me-back-here" )
さいごに
Twilioでエラー頻発しておかしいなと思ったらTwilio Statusをチェックしましょう。
以上です。
参考
- Twilio for KDDI Web Communications | クラウド電話API
- twilio/twilio-ruby: A Ruby gem for communicating with the Twilio API and generating TwiML
- Twilio Docs: Send text messages with Twilio's REST API
- Twilio Docs: Twilio's response to your REST API requests
- what is the point of twilio's StatusCallback parameter? - Stack Overflow
- Twilio Status