ブラヴィッシモのいろいろな記事

Twilioを用いた電話番号認証

2015/1/20

こんにちは。開発チームのCFEと申します。

 

以前、弊社クライアント様より
「電話番号の実在確認」をする業務システムについて ご相談をいただきました。

 

今回はその中で構築した、
Twilioを用いた電話番号認証 について話したいと思います。

 

Twilioは電話やSMSの送受信ができるサービスで、
APIを提供していることから、システムに導入することを決めました。

 

■Twilio
http://twilio.kddi-web.com/

 

 

まず、一般的な会員登録フォームは、

 

・メールアドレス
・電話番号

 

などを入力項目として設定し、
図1のようにメールアドレスの存在確認を行うことが多いと思います。
記事の図

 

そこに、電話番号の実在確認を入れるため、

更にTwilioのAPIと連携してSMSを送信する流れを入れることにしました。※図2(赤枠部分)
記事の図002

TwilioのSMSの送信はキャリアによって異なるのですが、約10円ほど利用料金がかかります。

そこで、料金をかけすぎないようにメールアドレスの確認が取れた場合に、SMS送信を行うような流れとしました。

 

プログラムの部分ですが、開発言語はPHPなので、

SMS送信部分に以下のようなコードを実装しました。

$account_sid = 'アカウントID';
$auth_token = '認証トークン';
$client = new Services_Twilio($account_sid, $auth_token);

$to =”+819012345678″; //電話番号
$from = “+184xxxxxxxx”; //送信元
$body = 本文;
//SMS送信
$result=$client->account->messages->create(array(
‘To’ => $to,
‘From’ => $from,
‘Body’ => $body,
));

 

これにより、

 

・電話番号の実在確認
・誤った電話番号の登録も減少

 

を実現させることができました。

 

SMSの発信はとても難しそうなイメージがありましたが、

APIとの連携部分も簡単に実装できたので、とても利用しやすいサービスだと感じました。

 

Twilioは電話の送受信も行うことができるので、
今後は、別な方法でも活用できればと考えています。

 


 

余談ではありますが、送信の確認を行う中で、以下のエラーが発生しました。

Fatal error: Uncaught exception 'Services_Twilio_TinyHttpException' with message 'Problem with the SSL CA cert (path? access rights?)'

 

エラーメッセージからcurlコマンドのSSLに問題があるようです。
そこで、SSLを利用しないオプションを指定してみました。

$client = new Services_Twilio_TinyHttp('https://api.twilio.com', array('curlopts' => array(CURLOPT_SSL_VERIFYPEER => false)));

 

しかし、結果は変わりません。

 

社内のネットワークチームに確認したところ、過去の解決事例から

apahce再起動を実施後に上記エラーが解消し、Twilio経由でSMS送信を行うことができました。
原因としては、bashの脆弱性である”Shellshock”対策のためにbashが更新されていたためのようです。

 

Pocket

カテゴリ:ブラヴィッシモのいろいろな記事

お問合せフォームへ
ブラヴィッシモTOP