1

我正在尝试按照谷歌开发者网站的本指南实施谷歌 reCaptcha 。我的代码:

private fun onClick() {
    SafetyNet.getClient(this).verifyWithRecaptcha(CAPTCHA_KEY)
            .addOnSuccessListener(this) { response ->
                if (!response.tokenResult.isEmpty()) {
                    verify(response.tokenResult)
                }
            }
            .addOnFailureListener(this) { e ->
                if (e is ApiException) {
                    Log.d("asd", "Error message: " + CommonStatusCodes.getStatusCodeString(e.statusCode))
                } else {
                    Log.d("asd", "Unknown type of error: " + e.message)
                }
            }
}

在模拟器上它的工作正常。当我点击按钮时,reCaptcha 会显示带有多个图像的对话框,用户应该在其中选择所有带有汽车、gidrants 等的图像。

但是,在真实设备上。单击按钮后,我总是收到 onSuccess 回调,并且对话框从未显示。

也许有人知道我面临什么问题?

4

1 回答 1

4

根据文档

如果 reCAPTCHA 确信这是真实设备上的真实用户,它将返回一个没有挑战的令牌。否则,它将在返回令牌之前提供视觉/音频挑战来证明用户的人性。

“没有挑战”意味着没有 reCAPTCHA。参考你的真实设备,谷歌显然已经对你的人性感到满意,不需要进一步确认。

verifyWithRecaptcha()正在按设计运行。

于 2018-10-22T14:43:55.890 回答