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