twilioを使ったandroidのsms認証の実装

14
Twilioを使ったAndroidのSMS認証の実装 日本Androidの会 鹿児島支部 野崎 弘幸 2016.03.24 JAGK 第16回勉強会

Upload: hiroyuki-nozaki

Post on 22-Jan-2018

497 views

Category:

Technology


0 download

TRANSCRIPT

Twilioを使ったAndroidのSMS認証の実装

日 本 A n d r o i d の 会 鹿 児 島 支 部 野 崎 弘 幸

2016.03.24

JAGK 第16回勉強会

自己紹介

野崎 弘幸

日本Androidの会鹿児島支部長 / 運営委員

Twilio-JP UG KAGOSHIMA

アジェンダ

Twilioを使って、サクッとAndroidのSMS認証を実装する方法を紹介します。

今日は、JAGKとTwilioUGの共同勉強会ということで、

まさに、Twilioがなければ実装が難しい機能ですね。

Twilioとは?KDDIウェブコミュニケーションズの提供する、 たった数行のコードで電話やSMSとネットをつなぐことのできるクラウドAPIサービス。

SMS認証の実装

SMS認証の流れ1. スマートフォンで、ユーザーが電話番号を入力。

2. 入力された電話番号をサーバ側に送信。

3. サーバ側で受け取った電話番号に認証番号をSMS送信。

4. 認証番号を入力。

(ブロードキャストレシーバを使って自動入力。)

5. 認証番号をサーバに送信して、正しい番号か確認。

6. 認証完了。

①電話番号入力

新規登録を開始して、電話番号入力。

②電話番号をサーバに送信

次へを押下したタイミングで、サーバへ電話番号を送信。

②電話番号をサーバに送信次画面に移る前に、認証番号を自動入力するため、

SMSの読み取り権限を取得。

// API Level 23以上 if(Build.VERSION.SDK_INT >= 23){ // Permissionが許可されているかどうかを確認 if(!(checkSelfPermission(Manifest.permission.RECEIVE_SMS) == PackageManager.PERMISSION_GRANTED)){ String permissions[] = {Manifest.permission.RECEIVE_SMS}; requestPermissions(permissions,REQUEST_PERMISSION);

// 許可されていればパーミッションを要求しない }else{ ※ダイアログを表示して次画面。 } // API Level 23未満ではパーミッションを要求しない }else{ ※ダイアログを表示して次画面。 }

②電話番号をサーバに送信確認画面を表示して確認が押下されたら送信。

③認証番号送信サーバで電話番号を受け取ったら、

SMSで認証番号を送信。

$client = new Services_Twilio($account_sid, $auth_token); $client->account->messages->create(array( 'To' => {send_telno}, 'From' => {from_telno}, 'Body' => "認証番号 {$auth_no} アプリの画面で入力して下さい。\n ", ));

④⑤認証番号を入力(自動入力)

ブロードキャストレシーバで、受信したSMSを確認し、送信電話番号が正しければ、認証番号を読み取り、サーバに送信して確認する。

自動で次画面へ

⑥認証完了認証番号が正しければ、次画面へ推移し、

ユーザー登録フォーム等を表示する。

ご清聴ありがとうございました。