首页 > 其他分享 >hCaptcha 协议识别 API 对接说明

hCaptcha 协议识别 API 对接说明

时间:2024-09-24 12:24:02浏览次数:14  
标签:website hcaptcha 对接 token API hCaptcha response

hCaptcha 协议识别 API 对接说明

本文将介绍一种 hCaptcha 协议识别 API 对接说明,它可让用户无需识别和点选 hCaptcha 验证码图片,仅需通过提交 Website Key 即可实现后台自动解码,完成验证。

接下来介绍下 hCaptcha 协议识别 API 的对接说明。

注册试用链接

注册试用链接

申请流程

要使用 API,需要先到 hCaptcha 协议识别 API 对应页面申请对应的服务,进入页面之后,点击「Acquire」按钮,如图所示:

如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。

在首次申请时会有免费额度赠送,可以免费使用该 API。

基本使用

首先先了解下基本的使用方式,就是输入需要处理 hCaptcha验证码的网站URL,便可获得处理后的结果,首先需要简单地传递一个 website_url 字段,我们的示例网站是:https://accounts.hcaptcha.com/demo,我们需要在 website_url 页面中获取 website_key,首先需要打开这个网页,按F12进入控制台,最后在Element页面进行全局搜索 hcaptcha-demo,我们可以得到下面的结果:

其中 data-sitekey 对应的一串字符串便是 website_key的值,下面是具体的参数结果:

可以看到这里我们设置了 Request Headers,包括:

  • accept:想要接收怎样格式的响应结果,这里填写为 application/json,即 JSON 格式。
  • authorization:调用 API 的密钥,申请之后可以直接下拉选择。

另外设置了 Request Body,包括:

  • website_url:需要处理验证码的网站URL。
  • website_key:在hCaptcha中的网站密钥标识符。

选择之后,可以发现右侧也生成了对应代码,如图所示:

点击「Try」按钮即可进行测试,如上图所示,这里我们就得到了如下结果:

{
  "token": "P1_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.hadwYXNza2V5xQda4nQzFgUbYJqILiiwbvyhjocSilg8RjFHvIHmCzmqUNZa9hesIWEVRx5KIbMVeAQzSTWCwXmiQrPZuIEmZz-ZPL6DPNmB3ZXtJNsVYRLdRyvWPTB7EYskJG85yDVor2TcgQFNqAahhKT3WXjtk3S54ZBhv7QvaImUmos8MWgUOvUZHsvUtojN-izWIrBkD1if_71quOHvcvEVTLcSLx9dOgzpNAJ8_6BmJEsGlPbMGnSKrS1QfpPyzvgrnpjjIY_6TMYwJrR0EwJgCdp_lfc4mkxl0NJsZt8D_q7jcv3v6jt1CZ2qbqF5_-i4y0MYnQMCm1T62xBPdiEyst_FtGuWxJllkrrmWN0edyWcWeasLcCS6qpRry0H7RU7DYQnML6dmQoZg15NT0tFrAYeLK7EwvJxzcFbvUQ-Tc5QVk7tzvKpDtUVfQeZmRRgxWbCFf6bAT1z0uUwdma1O1lcTkSZCC5cVTaprkkKE04Ov4aCIKg2N7WGj4r0AOykisAISX5oidF3gejDTJy9vU1hgaCYFOimnwRKyqRsJdznptzhzDOQuICuAHYT3is1sY26ltJGOZTdDKkt2i2owCoAylgLbBP8VjTOGrsM12IH3Xsy076O40RCG6zThWN5TFKSpl7PNA6l2KoW-P3_K9WORjx2DSvKTAwqcouSU-0Rc_8Hlq9cIuS1iDhiNfJnJ_zNy_2gXSR2j7NP7m_lsfwELKypKm6pPzIhOuz5RwPotfPQfXOMdF3Xy98iQiihZmuHENvLAhjV_W7NL9TK3THPwDTFriS8ghIncl02v-fVARXDiuFTvjjlegL7xbHgIrOhLpunsxLiwdImUWatEI9jqaf84X4BtoS0TGYo4pHkpIG10dhoz3vooeSToAws6tz7ZWSHm6naksZ41X_WIxd7N8P9yzxrbLgVv-nHia5qHQLDmiZf3alITKhtisennw8NpespaQIVZzw_B16bdUNKqHCCTLdFbr16-3KpRoHzOOU2kBhV-gDN0NiA3ecqIMnyMdnpKlUpnjJ5sMA3e0pKEX_Vbu8DE8zfkcwLIwCIb2BLrKEHnCvv4JX8TfBktzMc5oTtZyEu-E_6ew0mSm_nhVsGtmLXSsB81FP9VGGRd50buIXRNW4GFp3XdTmYyuN32kc-AHJ5kKDj2HGraHxKco0McT7nV2bgx97k-C7hgxL2x5t3lC97edphh2kt2-gXuTxxfB7K-ZG6w5d1MnRte4ZG7TxvPFFi5693IFRFbvcr-U3WyGZJmGGdfV55PnoIU9Qn-WDtBU4EXyvd_KTt-asHtI6VQiVSNzacemTfsu9WBF33f2gafDY4qqhyXDPNsu6BZCGMSBhxDPURY74OBr4mYOdhjELY07nSkr9RQtQwiiSa8B8XFlezCPafjgdbmmNzG3PXa3n23sSwVnJHpHhq79eTP_KeeCiqlCvNsHLEfiH5HCNRGp7v5b342wBk__BWFimJMvohz0rucTVYgVFBdTOomUTuqCPeUgDP3X6BnNqyVDRA-HrdRl-RkU6mnw-3-IwyMZQ-fEnFMzbGp3zaoY7Do2jKvKKILoq6Q8zlDYkrLwuXjDP-nernI2hxP9wVOUVmtq5Rs19RLUI4MNWZAqwG-wGnaoB756d8nfmh5XhFzvArE5bpL50FY1yJqv7nbPW7JNnkfZG80yVRrIZO_F9NEb3n4eiIzg9Gu9fv8ncyChiCCp-swK5B7_w-XsAlco98bO-YK-fFMJOhyt0PU8Zc-hYoCa6cLVTvhdPzIUA0CQOemg4Pz6PX6SVwLYSlOXYkzbrgBlyH5YBS3oaRCeavVLrJsKt0_KwHwgBa1mdP5mlYUpBDbKR4PKwknU7y111JH0B4fO39dOVA-zecvDG0bnuy98Jym4KUchZr1tXabMcM20mg1UvcxMfnKOx0ojBcVwYA7kPQK3EzMnwX9NbAzYP6IlMgjFK9ZM7HCXxN6J1_6kw10RT4O58-Pbh3cMSrZDfM-GuG7p7XrVpJrX8TD195DCJqx-DmVv3Bs3CiuCPTvGrSZ58KE4hQagidGreUD2WXxLBFfTv1RgM3eXMtROs7hddyBajIu401lxucNbpRB7lYV7pJwxG7LQoSZ2G2LzG8eFPVPIkDNVOa8nGzh-sWaF7kc7bVv-P4FXbLX0WCjvQRES2MCbXPyJ-OpZZXZcJy7SOsGY3jZbTkGoez19cRQLiFO35gA5l9FBptDKW-_yGemt5XeKsR_FwGPN9C-0k1E-28oB4iKo-h1zb2kJpilhnmG36Z59F5T6W77M7OD_N6VHRWuPClLElO09OrPLHbJmxq9JvMWjTg5JjEaqyTLyLXWgw0N3kZMCqJJeqNj5w5I7dpuJ6ScfXKVaT96v2UESebdbMFT7vkZAkFF8LIowkN56pNwXLHkB2KyIWR2WQL-335BEpQ0AVB6RX4kdociIhtvAdsIE6pvFIwkzyO0OvIHxzOwPxZKdmDmBVMu7YxJStrhY-XWCu4kO5gDIJ0iedPWKNleHDOZuZqGKhzaGFyZF9pZM4xrUyBomtyqDE1ZmUwNDhkonBkAA.dVWyVc6N3lx2ZJQ7NJ9aEsWA-KAIuQ4PMSKVGQuWyCA"
}

返回结果一共有多个字段,介绍如下:

  • token,此次 hCaptcha验证码 任务处理后验证结果。

可以看到我们得到了处理 hCaptcha验证码 的验证结果,然后我们可以用于POST或模拟提交给目标网站,一次性使用,有效期120s,建议在60s内使用,接下来将提供一段CURL版本将处理后token提交到目标网站来通过Recaptcha2验证码。

首先我们需要获取网站是如何发送POST请求,这样我们才能将生成的token传入进去,我们需要先打开F12控制台,然后人工先通过一下,最后我们可以看到网站发送了一个POST请求,我们只需要查看这次的POST请求构造,具体的过程如下:

  • 先人工通过验证,具体的如下图:

  • 再点击submit,观看控制台的network变化,具体的如下图:

  • 分析此次提交的POST请求构造,最后可以右键该请求复制CURL的代码,具体的如下图:

由上图分析可知,此次POST请求的URL为:https://accounts.hcaptcha.com/demo,我们仅需要提交参数 g-recaptcha-responseh-captcha-responseemail,然后我们只需要将处理后的token传入下面的data中即可,调用token验证所对应CURL代码如下:

curl 'https://accounts.hcaptcha.com/demo' \
  --data-raw 'email=&g-recaptcha-response={token}&h-captcha-response={token}'

调用token验证所对应的Python代码如下:

import requests

token = '{token}'

data = {
    'email': '',
    'g-recaptcha-response': token,
    'h-captcha-response': token
}

response = requests.post('https://accounts.hcaptcha.com/demo',
                        data=data)

if response.status_code == 200:
    print(response.text)

然后我们观察控制台变得了这样的结果:

最后我们就通过了hCaptcha验证码的验证。

另外如果想生成对应的对接代码,可以直接复制生成,例如 CURL 的代码如下:

curl -X POST 'https://api.acedata.cloud/captcha/token/hcaptcha' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "website_key": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
  "website_url": "https://accounts.hcaptcha.com/demo"
}'

Python 的对接代码如下:

import requests

url = "https://api.acedata.cloud/captcha/token/hcaptcha"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "website_key": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
    "website_url": "https://accounts.hcaptcha.com/demo"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:

  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

错误响应示例

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

结论

通过本文档,您已经了解了如何使用 hCaptcha 协议识别 API 让用户无需识别和点选 hCaptcha 验证码图片,仅需通过提交 Website Key 即可实现后台自动解码,完成验证。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。

标签:website,hcaptcha,对接,token,API,hCaptcha,response
From: https://blog.csdn.net/mynameonly/article/details/142486493

相关文章

  • 为什么要使用API接口获取数据?
    在当今数字化和信息化的时代,数据已成为企业和开发者最宝贵的资产之一。API(应用程序编程接口)作为一种标准化的数据获取方式,正在迅速成为获取和共享数据的首选手段。本文将探讨为什么使用API接口获取数据是现代开发的最佳实践。1.高效的数据访问API接口提供了一种高效的方式......
  • 凡客商品详情API:解锁电商数据的金钥匙
    在电子商务的复杂世界中,获取商品的详细信息对于商家和消费者来说至关重要。凡客诚品作为知名的电商平台,提供了强大的API接口,允许开发者通过编程方式获取商品的详细信息。本文将详细介绍如何使用凡客的API接口来获取商品详情,并探讨其返回值的意义。凡客API接口概述凡客的商品详情API......
  • 如何使用 Bittly 为基于 HTTP 的 API 快速创建 UI 操作界面
    在开发Web应用或服务时,通常会提供不同数量的API接口给客户端或其他第三方使用,当API数量达到一定数量的时候,在处理接口间的调用链以及参数关系时就会变得异常麻烦。在这种情况下便可通过Bittly的面板功能将这些API结构进行组装整理起来组成一个UI控制面板,从而......
  • 获取实时汇率接口API分享
    实时汇率API接口在现代金融和经济应用中扮演着重要角色。以下是一些常见的应用场景:1、外汇交易平台。2、国际汇款和转账服务。3、金融数据分析。4、财务和会计软件。调用该API接口需要先注册后申请此API接口。申请成功后使用个人中心的API秘钥就可以进行对接开发。接......
  • 使用 typed-rest-client 进行 REST API 调用
    typed-rest-client是一个用于Node.js的库,它提供了一种类型安全的方式来与RESTfulAPI进行交互。其主要功能包括:安装typed-rest-client要使用typed-rest-client,首先需要安装它,可以通过npm来安装:$npminstalltyped-rest-client使用typed-rest-client这里假......
  • 如何利用 Pronouncing API 创作押韵诗词与歌词
    PronouncingAPI是一个用于音标化单词和生成押韵词的API,常用于语言处理和文本生成任务,尤其是诗歌和歌词创作中。它基于CMUPronouncingDictionary,这是一种广泛使用的英语发音词典。以下是它的主要功能和使用方法:1.获取单词发音PronouncingAPI可以通过提供单词,返回其音标表示......
  • InvalidDataAccessApiUsageException 和 Write operations are not allowed in read-o
    InvalidDataAccessApiUsageException和Writeoperationsarenotallowedinread-onlymode解决方法2016年04月07日12:35:02阅读数:14221这些天写webservice,一直在测接口,get方法都没问题,就从昨晚开始测save方法的时候出现了这个错误Writeoperationsarenotallo......
  • 【Web APIs day02 事件绑定处理和事件对象、网页交互】
    WebAPIs-第二天笔记掌握事件绑定处理和事件对象,完成常见网页交互事件监听事件类型事件对象拓展知识综合案例事件监听以前写的代码都是自动执行的,我们希望一段代码在某个特定的时机才去执行,比如点击按钮可以弹出警示框比如鼠标经过显示下拉菜单等等事件事件是程......
  • Capital许可使用数据分析工具
    在数字化浪潮中,软件已成为企业运营的核心。然而,随着软件种类和数量的激增,如何有效管理、分析和优化软件许可使用,已成为众多企业面临的难题。Capital许可使用数据分析工具,作为一款领先的软件资产管理解决方案,正是为解决这一问题而生。一、Capital许可使用数据分析工具的核心价值C......
  • asp.net core webapi 将两个对象/两个类合并到一起返回给前端
    举例:A,B类publicclassA{publicintid{get;set;}publicstringname{get;set;}publicstringphone{get;set;}}publicclassB{publicintage{get;set;}publicstringsex{get;set;}}publicclassAB{publicAa{get;set;}public......