Twilio APIでSMSを送信する#3

2013.04.23

TwilioでSMSを使う

TwilioではSMSを使用して任意のメッセージを送ったり、受信したSMSに応じてメッセージを返したりできます。
今回もnode.js用APIを使用して、TwilioからSMSを使ってみましょう。

環境構築方法

実行環境およびTwilioアカウントについては、第1回記事第2回記事を見て設定しておいてください。

SMSをnode.jsから送るための準備

以前メッセージ再生を試したように、すぐにSMS送信が試せるかと思ったのですが、
日本の番号だと現状はSMSが使用できないので、アメリカの番号を取得します。
ここの画面右上にあるドロップダウンからアメリカを選択し、適当な空いている電話番号を購入しましょう。
この番号を使用してSMS送信をテストしてみます。
twilio3-1

SMS送信の実装

では、SMS送信を実装してみましょう。node.js用APIのsms.messages.create関数を使用し、SMSを送信します。
bodyに送信内容、toに送信先番号、fromにはSMS送信が有効な番号を指定します。

//sms.js
var accountSid = '<ACCOUNT SID>';
var authToken = "<AUTH TOKEN>";
var client = require('twilio')(accountSid, authToken);

//SMSを送る
client.sms.messages.create({
    body: "ショートメッセージテスト!",
    to: "<SMS送り先携帯番号>",
    from: "<取得したアメリカの番号>"
}, function (err, message) {
    if (err) throw err;
    console.log("SMS送信");
    //SIDを指定してSMS情報を取得する
    client.sms.messages(message.sid).get(function (err, message) {
        if(err) throw err;
        console.log("SMS情報取得");
        console.log(message);
    });
    console.log("SMS送信完了. SID:",message.sid);
});

SMS送信のコールバック関数では、sms.messages関数でSMSの詳細情報を再度取得しています。
取得した情報を見ると、メッセージ内容やサーバの情報(nginxみたいです)など、さまざまな情報が取得できます。

では、プログラムを実行してみましょう。しばらくすると指定した電話宛てにSMSが送信されます。

% node sms.js
・
・

まとめ

今回はSMS送信を確認しました。いまのところ日本の番号ではSMSが使えませんが、そのうち使えるようになるかと思います。
また、今回は実装しませんでしたが、独自にSMS受信サーバをたてれば、SMSを送信すると自動的にリプライしてくれるようなことも実行させることができます。

参考サイトなど