Level up your Twilio API skills in TwilioQuest, an educational game for Mac, Windows, and Linux. Download Now

メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

サンプルのバックエンドを使用して、Android用のTwilio Verification SDKを統合する

This guide is part of the Twilio Verification SDK integration guides

For the full flow to be implemented, you must deploy your own JWT provider. The service will receive phone numbers and return signed JWTs, using your AUTHY_API_KEY as encoding key.

まず、SDKをすでにTwilioによってセットアップされたサンプルのバックエンドに統合します。

Step 1: サンプルのバックエンドをデプロイし、統合を開始します

GitHubのリポジトリーからワンクリックでデプロイできる、サンプルのトークンサーバーへの呼び出しを追加します。

Then you will need to set your AUTHY_API_KEY and your APP_ID in the heroku app as an environment variable.

注 :

* AUTHY_API_KEYがうまく見つからない場合は、こちらの手順に従ってください

- AUTHY_API_KEYがうまく見つからない場合は、こちらの手順に従ってください

AUTHY_API_KEYをセットアップする

Step 2: サンプルのトークンサーバーに照会して、電話番号をJWTに変換する

Android Studioで空のアクティビティープロジェクトを作成します。 この例ではretrofitを使用します。

Build.gradle

    compile 'com.squareup.retrofit2:retrofit:2.2.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.2.0'

Retrofit Interface: TokenServerApi.java

public interface {
    @POST("/verify/token")
    @FormUrlEncoded
    Call<TokenServerResponse> getToken(@Field("phone_number") String phoneNumber);
}

Response Holder: TokenServerResponse.java

public class TokenServerResponse {
    @SerializedName("jwt_token")
    private String jwtToken;

    public String getJwtToken() {
        return jwtToken;
    }

    public void setJwtToken(String jwtToken) {
        this.jwtToken = jwtToken;
    }
}

メインのアクティビティーでサービスを初期化します。 TOKEN_SERVER_URL文字列をお使いのデプロイ済みのサンプルのバックエンドに置換します。

    private TokenServerApi tokenServerApi;

    private void initTokenServerApi() {
        String TOKEN_SERVER_URL = "https://verification-token.herokuapp.com";

        Retrofit retrofit = new Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create())
            .baseUrl(TOKEN_SERVER_URL)
            .build();

        tokenServerApi = retrofit.create(TokenServerApi.class);
    }

サンプルのトークンサーバーに電話をかけます。 サーバーは電話番号を受信し、リクエストを送信した人の正当性の検証に使用されるJWTを返します。

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String numberToVerify = "1555555555"; //Should come from user input

            tokenServerApi
                .getToken(numberToVerify)
                .enqueue(new Callback<TokenServerResponse>() {

                @Override
                public void onResponse(Call<TokenServerResponse> call,
                                       Response<TokenServerResponse> response) {
                    String jwtToken = response.body().getJwtToken();
                }

                @Override
                public void onFailure(Call<TokenServerResponse> call, Throwable t) {
                    throw new RuntimeExecutionException(t); //Woops!
                }
            });
        }
    });

Step 3: Android用Twilio Verification SDKを追加する

SDKをプロジェクトの右記のものに追加します build.gradle

    compile 'com.twilio:verification:+'

メモ: SDKはjCenterリポジトリー経由で公開されているため、お使いのリポジトリーリストにこのリポジトリーが追加されていることを確認してください。 アプリケーション内の右記のもの build.gradle

allprojects {
    repositories {
        jcenter() 
        (...)
    }
}

TwilioVerificationインターフェイスを作成するアクティビティーまたはプレゼンターへの参照を保持する

    private TwilioVerification twilioVerification;

onCreate()内でインスタンス化します。 コンストラクターにはコンテキストが必要です。

    twilioVerification = new TwilioVerification(this);

JWTが受信時に検証の開始の呼び出しを追加する

public void onResponse(Call<TokenServerResponse> call, 
                       Response<TokenServerResponse> response) {
    String jwtToken = response.body().getJwtToken();
    twilioVerification.startVerification(jwtToken, Via.SMS);
}

Step 4: TwilioVerificationコールバックを受信します

ユーザーのデバイスがTwilioから電話番号検証SMSを受信した際、Google Playサービスは自動的にそれを検証のため、Twilio Verification SDKに渡します。 これでSDKにレスポンスがあることをAppが知ることができます。

Androidmanifest.xml<application>タグ内)

    <receiver android:name=".MyVerificationReceiver" >
        <intent-filter>
            <action android:name="com.twilio.verification.current_status" />
        </intent-filter>
    </receiver>

MyVerificationReceiver.java

    public class MyVerificationReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            VerificationStatus verificationStatus = TwilioVerification.getVerificationStatus(intent);

            // NOT_STARTED, STARTED, AWAITING_VERIFICATION, SUCCESS, ERROR
            state = VerificationStatus.State
    }
}
Lucas Vidal
Rate this page:

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。