v2 Android

Druga verzija orodja reCAPTCHA nudi tudi podporo za Android aplikacije. Podpora je na voljo v programskih jezikih Kotlin in Java.

Delovanje je podobno kot pri obliki s potrditvenim poljem. Orodje načeloma vežemo na klik gumba, s čimer se sproži preverjanje. V kolikor je potrebna dodatna validacija, se nam prikaže dodatni izziv. Pri tem lahko izbiramo med slikovnim in glasovnim.

Dodaja povezave z SafetyNet API-jem

Pred samim implementiranjem, je potrebno v datoteko build.gradle dodati povezavo z SafetyNet API-jem. V dokumentaciji reCAPTCHA je na tem mestu napaka, saj se uporablja metoda compile, ki ni več podprta. Namesto nje uporabimo implements. Izsek kode, ki ga je potrebno dodati, je sledeč:
apply plugin: 'com.android.application'
...
dependencies {
    implementation 'com.google.android.gms:play-services-safetynet:16.0.0'
}

Implementacija poslušalca

V naslednjem koraku je potrebno sprožiti izvajanje orodja, kar storimo z klicem funkcije verifyWithRecaptcha(), katere parameter je naš javni ključ. Nato je potrebno definirati še poslušalca v primeru uspeha in neuspeha. Prvega definiramo s prepisom metode onSuccess(), drugega pa s prepisom onFailure(). Seznam možnih napak ob neuspehu lahko najdete na tej povezavi. Celotni proces načeloma sprožimo ob kliku na gumb. Primer v Javi lahko najdete spodaj.
public void onClick(View view) {
	SafetyNet.getClient(LoginActivity.this).verifyWithRecaptcha("6LdgGqcUAAAAAKKPzErZLJd1FAXiWo8LSYYrIXhU").addOnSuccessListener(new OnSuccessListener<SafetyNetApi.RecaptchaTokenResponse>() {
		@Override
		public void onSuccess(SafetyNetApi.RecaptchaTokenResponse recaptchaTokenResponse) {
			//Validiraj vrednost
                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        //Odzovi se na napako
		}
	});
}

Kot parameter funkcije onSuccess(), nam orodje samodejno vrne geslo, ki ga je potrebno še validirati na strani strežnika. Več o tem si lahko preberete v poglavju Validiranje na strežniku.