代码之家  ›  专栏  ›  技术社区  ›  Darthoo

Google Recaptcha不在真实设备上显示Captcha挑战对话框

  •  1
  • Darthoo  · 技术社区  · 6 年前

    我正在尝试实现下面的google recaptcha guide 来自谷歌开发者网站。我的代码:

    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)
                    }
                }
    }
    

    在模拟器上,它工作正常。当我点击按钮时,回顾一下有几个图片的对话,用户应该在这些图片中选择汽车、Gidrants等的所有图片。

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   greeble31    6 年前

    根据 documentation :

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

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

    verifyWithRecaptcha() 按设计运行。