mBaaSのスクリプト機能を使えばサーバサイドで任意のコードを実行できます。それによって、APIキーなどを隠蔽したいケースやAndroidとiOSでコードを共通化したいといったことが実現します。
今回、スクリプトで利用できるライブラリとしてTwilioが追加されました。その使い方を簡単に紹介します。この記事ではRubyを使っています。
スクリプトでSMSを送る
まずTwilioで必要な情報を取得します。必要なのは以下の三つです。
- アカウントSID
- Auth Token
- 送り元の電話番号
アカウントSIDとAuth Token
アカウントSIDとAuth TokenはTwilioのダッシュボードで取得できます。
送り元の電話番号
Twilioで試用している状態だと表示が違うかも知れません。課金していると、まず電話番号を購入する必要があります。
日本の電話番号だとSMSが送れないようなので、USのものを購入します。一ヶ月150円だそうです。
番号を取得しました。国番号から指定する必要があります。
スクリプトを組む
まずTwilioのライブラリを読み込みます。
require 'twilio-ruby'
次に先ほど取得した情報を定義します。
account_sid = 'ACf...7df'; auth_token = '01b...619'; from_tel = '+17653003967';
そしてTwilioのクライアントを生成します。
client = Twilio::REST::Client.new account_sid, auth_token
これで準備完了です。SMSは以下のように送信します。
response = client.api.account.messages.create( from: from_tel, to: '+819099999999', body: 'メッセージ' )
スクリプトに組み込む
mBaaSのスクリプトとして使う場合には以下のようなコードになります。といっても module.exports
を指定するくらいです。後、メッセージと送り先を可変にしました。
require 'rack' require 'twilio-ruby' def call(env) account_sid = 'ACf...7df'; auth_token = '01b...619'; from_tel = '+100099999999' client = Twilio::REST::Client.new account_sid, auth_token req = Rack::Request.new(env) response = client.api.account.messages.create( from: from_tel, to: req.params['to'], body: req.params['message'] ) [200, {'Content-Type' => 'application/json'}, [response.to_json]] end
今回はGETリクエストで指定できるようにしました。
テスト実行
管理画面から実際に送ってみます。 Query を以下のように指定します。
to=+81909999999&message=こんにちは
実行すると、TwilioからのレスポンスがそのままJSONとして表示されます。そして、スマートフォンにSMSが届くでしょう。
まとめ
Twilioを使うことで、SMSを送ったり、電話をかける、FAXを送ると言ったことがAPIベースで実装できるようになります。スクリプトと組み合わせることでデータストアやファイルストアから取得したデータを活用できます。ぜひお試しください!