世の中には便利なサービスがあるものですね。携帯電話の端末認証をしたくて、ユーザに電話番号を入力してもらい、SMSで認証キーを送信。その認証キーをユーザに入力してもらうことで、端末認証完了。みたいな。
twilioに登録
twilioにはトライアルがあり、twilioのAPI使い勝手を試すレベルであれば、色々できる。
ある程度、日本語化されているので迷うことはないと思うけど、普通にサインアップ。
トライアルでSMS送信するときの注意点
送信先電話番号は、検証済み電話番号じゃなきゃダメ
トライアルだと、1つの電話番号しか登録できないっぽい。なお、検証済み電話番号の検証方法で、通話方式とSMS方式があるが、なぜか通話方式は正常に完了できなかった。
SMS送信には、アメリカ(+1)の電話番号を取得する必要がある
ここに騙されやすい(誰も騙してない)。
サインアップして、最初に割り当てられる電話番号は、おそらく日本の国番号(+81)が付いたものだと思うけど、それをリリースして、アメリカの国番号(+1)の電話番号を再取得しなおす。
番号をリリースして、新しく電話番号を購入(トライアルなので実際は課金されない)
勝手にアサインされる電話番号は使わない
左上の国でアメリカを選択
(+1)がついていれば、電話番号は何でもいい
curlでSMS送信APIを叩く
curl / Ruby / PHP / Python / Node.js / Java / C# がサポートされている。テストするだけなら、ライブラリとか必要ないcurlが楽。
非常にわかりやすいサンプルが付いているので、迷うことはないが1点だけ注意が。 curlの下記サンプルコマンド、実はAPIのURLが間違っている。 なので、サンプルのまま実行しても、404 not foundのエラーが返ってくるだけ…。
# これは実行できない
curl -X POST 'https://jp.twilio.com/2010-04-01/Accounts/[ACCOUNT SID]/Messages.json' \
--data-urlencode 'To=+818000000000' \
--data-urlencode 'From=+100000000' \
--data-urlencode 'Body=test' \
-u [ACCOUNT SID]:[AuthToken]
jp.twilio.com
↓
api.twilio.com
こっちのホスト名が正しい。
# これが実行できる
curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/[ACCOUNT SID]/Messages.json' \
--data-urlencode 'To=+818000000000' \
--data-urlencode 'From=+100000000' \
--data-urlencode 'Body=test' \
-u [ACCOUNT SID]:[AuthToken]
これで電話番号など設定があっていれば、検証済み電話番号にSMSが送信されているはず。