VK Cloud logo

Подключение к мобильному приложению на Android

  1. Загрузите VK Капча SDK:

    1. Добавьте репозиторий Maven в dependencyResolutionManagement или settings.gradle.kts:

      dependencyResolutionManagement {    repositories {        maven(url = "https://artifactory-external.vkpartner.ru/artifactory/vkid-sdk-android/")    }}
    2. Подключите библиотеку в build.gradle.kts модуля приложения:

      dependencies {    implementation("com.vk.id.captcha:vkid-captcha:<ВЕРСИЯ>")}

      Здесь <ВЕРСИЯ> — версия VK Капча SDK для Android (0.0.13).

    3. В Android Manifest вашего приложения переопределите authority провайдера, который инициализирует SDK:

      <application>    <provider        android:name="com.vk.id.captcha.init.SdkInitContentProvider"        android:authorities="your.unique.authority"        android:exported="false"        tools:replace="authorities" /></application>
  2. Получите от бэкенда ссылку для запуска виджета капчи.

  3. (Опционально) Настройте язык локализации капчи. Воспользуйтесь методом SDK VKCaptcha.setLocale().

  4. Отобразите капчу пользователю. Воспользуйтесь методом SDK VKCaptcha.openCaptcha().

  5. Обработайте результат прохождения капчи, используя интерфейс VKCaptchaResultListener:

    • Если вернулся токен успешного прохождения капчи, отправьте его бэкенду для валидации.

    • Если пользователь закрыл капчу, бэкенду ничего не отправляется. Определите, что будет происходить во фронтенде в этом случае.

Пример кода на Kotlin:

import com.vk.id.captcha.api.VKCaptchaimport com.vk.id.captcha.api.listener.VKCaptchaResultListenerimport com.vk.id.captcha.api.data.VKCaptchaResultimport android.net.Uriclass CaptchaHandler {    fun handleCaptcha(captchaUrl: String) {        val listener = object : VKCaptchaResultListener {            override fun onResult(result: VKCaptchaResult) {                when (result) {                    is VKCaptchaResult.Success -> {                        val token = result.token                        repeatRequest(token)                    }                    is VKCaptchaResult.Error -> {                        // Обработка ошибки или закрытия капчи                    }                }            }        }        val uri = Uri.parse(captchaUrl)        val domain = "${uri.scheme}://${uri.host}"        VKCaptcha.openCaptcha(            domain = domain,            redirectUri = captchaUrl,            listener = listener        )    }    private fun repeatRequest(token: String) {        // Повторный запрос с токеном    }}