Справочник VK ID Captcha SDK Android
VK ID Captcha SDK для платформы Android содержит следующие классы, методы и интерфейсы:
- •
VKCaptcha— singleton-класс, главная точка входа для отображения окна капчи, содержит:- •
VKCaptcha.getToken()– метод, который возвращает токен успешного прохождения капчи. - •
VKCaptcha.openCaptcha()– метод для отображения окна капчи. - •
VKCaptcha.closeCaptcha()— метод для закрытия капчи.
- •
- •
VKCaptchaResultListener— listener-интерфейс для отслеживания результата прохождения капчи. - •
VKCaptchaResult— sealed-класс, который описывает результат прохождения капчи. - •
VKCaptchaError— sealed-класс, который описывает ошибку прохождения капчи.
VKCaptcha
VKCaptcha — singleton-класс, главная точка входа для отображения окна капчи. Содержит методы для открытия и закрытия капчи.
object VKCaptcha {
fun openCaptcha() // открывает экран капчи
fun closeCaptcha() // закрывает экран капчи
fun getToken() // возвращает результат — токен успешного прохождения капчи
}VKCaptcha.getToken()
Метод для получения токена прохождения капчи. Мобильное приложение должно вызывать этот метод перед каждым запросом к серверу, при котором пользователю нужно пройти капчу.
После успешного прохождения капчи метод возвращает токен, который вам нужно добавить к API-запросу в заголовке X-Challenge-Solution.
Если токена нет, метод возвращает null. Подробнее — в сценарии взаимодействия.
object VKCaptcha {
fun getToken(domain: String): String? // возвращает токен успешного прохождения капчи
}VKCaptcha.openCaptcha()
Метод для отображения окна капчи.
- •
url– URL, который вы получили из поляredirect_uriпри обработке ошибки капчи с кодом14или при объединенииX-Challenge-Urlс доменом — при обработке заголовков. - •
listener— интерфейс для отслеживания результата прохождения капчиVKCaptchaResultListener. - •
domain– домен, при запросе к которому пришла капча.
VKCaptcha.openCaptcha(domain, url, listener)VKCaptcha.closeCaptcha()
Метод для закрытия капчи.
VKCaptcha.closeCaptcha()VKCaptchaResultListener
Listener-интерфейс для отслеживания результата прохождения капчи.
Содержит метод onResult(result: VKCaptchaResult).
Если пользователь отменит прохождение капчи, внутри onResult() вернётся событие VKCaptchaError.Cancelled.
interface VKCaptchaResultListener {
fun onResult(result: VKCaptchaResult) // результат прохождения капчи
}VKCaptchaResult
Sealed-класс, который описывает результат прохождения капчи.
public sealed class VKCaptchaResult {
/** Успешное прохождение капчи */
public class Success internal constructor(
public val token: String, // success_token успешного прохождения капчи
public val domain: String?, // домен, при запросе к которому пришла капча
) : VKCaptchaResult()
/** Ошибка прохождения капчи */
public class Error internal constructor(
public val error: VKCaptchaError, // ошибка прохождения капчи (например, сетевая ошибка)
public val domain: String?, // домен, при запросе к которому пришла капча
) : VKCaptchaResult()
}VKCaptchaError
Sealed-класс, который описывает ошибку прохождения капчи. Содержит стек-трейс — последовательность вызовов методов, которая привела к ошибке, и описание:
- •Поле
message— сообщение об ошибке. - •Поле
error— стек-трейс ошибки: описание исключения, которое вызвало ошибку, илиnull, если причина ошибки не связана с исключением.
Пример кода в случае ошибки прохождения капчи
public sealed class VKCaptchaError(
public val message: String, //сообщение об ошибке
public val error: Throwable?,
) {
/** Сетевые ошибки */
public class NetworkError internal constructor(
message: String,
error: Throwable? = null
) : VKCaptchaError(message, error)
/** Ошибки в параметрах методов VK ID Captcha SDK*/
public class IllegalArgumentError internal constructor(
message: String
) : VKCaptchaError(message, IllegalArgumentException(message))
/** Если капча была закрыта до попытки её прохождения */
public class Cancelled internal constructor() : VKCaptchaError("You've cancelled the captcha flow", null)
}