> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Recaptcha3 protokolligenkänning API integration instruktion

> Recaptcha verification code recognition service API guide - Ace Data Cloud

Denna artikel kommer att introducera en Recaptcha3 protokolligenkänning API integration instruktion, som gör att användare kan genomföra verifiering utan att behöva identifiera och klicka på Recaptcha3 verifieringsbilden, utan endast genom att skicka in Website Key för att möjliggöra automatisk avkodning i bakgrunden.

## Ansökningsprocess

För att använda Recaptcha3 protokolligenkänning API, börja med att gå till [Ace Data Cloud-konsolen](https://platform.acedata.cloud/console/applications) för att hämta din API-token, som du kan spara för framtida bruk.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Om du inte har loggat in eller registrerat dig, kommer du automatiskt att omdirigeras till inloggningssidan för att registrera dig och logga in, och efter att ha slutfört detta kommer du automatiskt att återvända till den aktuella sidan.

**En API-token räcker för att anropa alla plattformens tjänster, det behövs ingen separat ansökan för varje tjänst.** Första ansökan ger en gratis kvot, så att du kan prova gratis; om kvoten tar slut kan du ladda på allmän balans i [konsolen](https://platform.acedata.cloud/console/coin).

> 📘 Fullständig dokumentation: [Recaptcha3 protokolligenkänning API →](https://platform.acedata.cloud/documents/captcha-token-recaptcha3)

## Grundläggande användning

Först bör du förstå den grundläggande användningen, jämfört med Recaptcha2 behöver vi dessutom skicka in en parameter `page_action`, denna parameter måste hämtas från koden, den visade webbadressen är: `https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php`, nedan visas en metod för att hämta den:

### Snabbmetod:

Öppna f12, och sök sedan på Element-sidan efter `.execute(`, i det röda rutan kan vi se att det finns en `action` parameter, samtidigt följs execute av en sträng, vilket också är innehållet som behövs nedan, specifikt visas det enligt bilden nedan.

<p>
  <img src="https://cdn.acedata.cloud/imwlto.png" width="500" className="m-auto" />
</p>

Därefter behöver du ange URL:en för den webbplats som ska hantera verifieringskoden, så får du det bearbetade resultatet, först behöver du enkelt skicka in ett `website_url` fält, och slutligen behöver du ange parametern `website_key`, detta innehåll kan hämtas ovan, också en sträng som följer efter execute. Vi kan nu fylla i motsvarande innehåll på gränssnittet, som visas i bilden nedan:

<p>
  <img src="https://cdn.acedata.cloud/1hw2uo.png" width="500" className="m-auto" />
</p>

Här kan vi se att vi har ställt in Request Headers, inklusive:

* `accept`: vilken typ av svar vi vill ta emot, här anges `application/json`, det vill säga JSON-format.
* `authorization`: nyckeln för att anropa API:et, efter ansökan kan du direkt välja från rullgardinsmenyn.

Dessutom har vi ställt in Request Body, inklusive:

* `page_action`: måste hämtas från koden på webbplatsen med verifieringskoden.
* `website_url`: URL:en för den webbplats som ska hantera verifieringskoden.
* `website_key`: webbplatsens nyckelidentifierare i Recaptcha3.

När du har valt kan du se att motsvarande kod också har genererats till höger, som visas i bilden nedan:

<p>
  <img src="https://cdn.acedata.cloud/3dahem.png" width="500" className="m-auto" />
</p>

Klicka på "Try" knappen för att testa, som visas i bilden ovan, här har vi fått följande resultat:

```json theme={null}
{
  "token": "03AFcWeA5mfdNlQD0RGX9PTWPs0l65QukjwbYObCue5hygRuA6jJmBtwR98S2bmmZOjbLh7ogEMDd8NzJdq8DoHOD_LHIUWmdEL3HJS0pP2nmTTSoU_ltxORWA4sVsrWiXDgkARA4wAhJCegD6PftkRuu0KKbqRsJ7KVKukUbLU1ThBu7P3r0fybwpS11yQmF7xpbEZeFzRm_osERk9tQzs1lEYORZSVA5dimbWi42TqUC87mJHCKO0HMiU404LOyER84It7ne51V5YXEHR_o6-ORr2CmBOawdTDTsqWUwT8vyEvzy-ov-pZdl0B0A_U59_uZd7vbIwv937-iXyzkVWbakUXNMdXlHffpFYd7OLTSBhJu6nasV3IhrbnxO8eGIbPDoHIyGpA74D882ALwTnXMgkcmGeGM9YuqCrf7F06cNKY7yKiisZIU-7v3ZnHV3JUkODGpXQ6dwq2fuP5o6kgeUQVdkv4fAZ_Tx_TB_R6gPSgwulr8Q5hH34bs-v1oUl2S9mLhXT9SWvgYizU_4FN2Ou23ETXTAVD_uI9fWaDgKaLOKI1i-xHCF_LKU3wKjyYJfQhFSCSyoeGL4o1j9lZ27cEHL5AlCm_jcCiXhe2_LT_dI-r5ozuyOGv-iDZ_1XTSSnCGdmroXX56XsZAytU52zBAlYVe_aRAojruc9KdkhK4kdeBESBbDLVe3-jNFwYspe0R93SORxXXIqR9CtZrIjI_2U8XjCHFz_euChdU_wkH5BjvONVbUT1DQNuoo0ugJL5kUkFrubHppOKvoZMwIKjjK_ZX1NBeCvQvYm6IpwBWfvM4hjGI7UVXH3iZkrX9PLATIIIkA8PxTeN45k8DulzOhKLSFKK196fRlH83S8UAaM-vjBxf32Vg83C1gWzKB5sYhxqEtZeB7DNpmAkozFfubljURr7YTjtq8Bgnj0PkfzbgKk8FRl-hMUb9BUjNNuSuFC7GZVim6xQnIV9ZPaAcuzJTYcOizFJePbVEXlc9A5Vq2rDh3D7Ld5o5oqc2kK4eCrO_38le6EVTs_fRY2nXy6RMyjjaJN12lOKYwYzGKhm52gTZTrJXqeTAW8o2KfwZ9iek-tr5qxj5b40iY4V2PY6SflMQvmKLAgFhB-yo-o5PEkikQ98T-bE-wG2-3kd5NRMiD132kIhf48zhVJUGeJqdV_3m8ukyqTk26KisM12kN-h9uYefvUCxzd_mBuWlHzH9rFMlJSe8Z6lcZIVcqNF4fcEM-ukNnwMUK5H_SC48U7O_xfOaEqEpAHDC7CCyVwlGCFh0uAT8KSpaNFfxBmMPXeYrGYn83PCgMg1NZA-7PrpeidXmWdBZ2yY8MA__7uCe8clCmINseBTCIbNmAHPlI_zJKqQfhXaDbaELeD62P0Pquu_SBtdEtqPeB9Esn_yjbK3IFvAaGSnFhwhHHK8dpOI7v-rJvTigPu8MMrEUTvug_zog81kCG8HY3xorTj2OdTwdEYpeMJ1VIHSjdTcnepLB0Cffx5wAdk-gf1TGEnEyTiwII4A4vtq8r0LFK4YObOzNmBTl3IoTNheYYKpheTKH3KShMK6hXDKxDRGEUhdsW4TRtVT-dwJDqY_F7J1RwKP-xDuN98VgwQmQuhJteQUALevgI2jAGFCFfSeFbQ8BOT6ekEI0m30zDX0kh83mkE7-u9qKljYifjqbLarMNPP51QRbvAS3mHlP17PMhIKzjuIka4T2Y9XdRwDgRRdEkYiJgDvkcABTknGBMezraon8JNDRhIJMUIKpidWTdhEQ79qAEfZkowdbnTdKeWeayi1OmV_W4aox-aC62H-VIn70McXXB6zRyYlA2NvTUWgNhHWkSO1SW7uflNEyUeWFRLBZV_firMEVfIGirHOAbQqsn83BirDNPHl4xevf4nRu4gWpgOGBrzeUXQeuMWO4ZFsdWxJ2VsT19t0H5DJtxtHYXFtPZ8tFDFY-r8JKFab4S6e5v8PCrfjCWkPmDaRJal_vLFa1V1dF1l0ARu9NLW4mEuT600azFms8cMlvuCTvWI2VWyn4Wk05UvcR8FYO2-ke4E-ZFRl0jSxjlEutzbOwm2ik4eF0Wh2DBliaSr1obHaxkmLJDUIzGQ3wi49Nyn0SSOdz_BGaxuRrrxCZ4ci0e2b5cxLtkv64Njy7IYJURaBuQk99ijdw7rg3pssAa_uJSMQeZe_kLtgEWF73uT4ceSOFPVuxMGLrJRQTBYxAHVKq7kloS5wtphUr2Sp-b4kezKnCV9HNfC5NRk2KqDT-bkJ6cUYN_0yauyZK1_F4BVTk36IOCe1Cqfe3K-wAZBzvrI_Vz8Li1uEWe0b5KOQ"
}
```

Resultatet innehåller flera fält, som beskrivs nedan:

* `token`, resultatet av behandlingen av Recaptcha3-verifieringsuppgiften.

Vi kan se att vi har fått verifieringsresultatet för Recaptcha3, som vi kan använda för att simulera en POST- eller GET-begäran till målsidan, engångsanvändning, giltighetstid 120 sekunder, rekommenderas att användas inom 60 sekunder. Nedan följer en kort beskrivning av ett sätt att skicka den genererade token till målsidan:

Anropa Python-koden som motsvarar tokenverifieringen:

```python theme={null}
import requests

url = "https://recaptcha-demo.appspot.c/recaptcha-v3-verify.php?action=examples/v3scores&token='{token}'"

r = requests.get(url)
if r.status_code == 200:
    return r.text
```

Därför kan vi få resultatet:

```json theme={null}
{
  "success": true,
  "hostname": "recaptcha-demo.appspot.com",
  "challenge_ts": "2024-09-14T08:52:26Z",
  "apk_package_name": null,
  "score": 0.9,
  "action": "examples/v3scores",
  "error-codes": []
}
```

Vi kan se att `success` indikerar resultatet av verifieringen här, vilket innebär att vi framgångsrikt har passerat verifieringen av Recaptcha3.

Om du dessutom vill generera motsvarande integrationskod kan du direkt kopiera den som genereras, till exempel CURL-koden nedan:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/captcha/token/recaptcha3' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "website_url": "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php",
  "website_key": "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9",
  "page_action": "examples/v3scores"
}'
```

Python-koden för integration ser ut som följer:

```python theme={null}
import requests

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

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

payload = {
    "website_url": "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php",
    "website_key": "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9",
    "page_action": "examples/v3scores"
}

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

## Asynkron läge (async)

Som standard är API:et synkront och blockerande: en begäran väntar tills tokenbehandlingen är klar innan den returneras. Om du gör en multipel lösare rotation och vill "få task\_id omedelbart efter att ha skickat uppgiften, först schemalägga andra lösare och sedan återkomma för att hämta resultatet", kan du skicka `async: true` i begärningskroppen.

När du skickar `async: true` kommer gränssnittet omedelbart att returnera en `task_id` utan att blockera väntan:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/captcha/token/recaptcha3' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "website_url": "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php",
  "website_key": "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9",
  "page_action": "examples/v3scores",
  "async": true
}'
```

```json theme={null}
{
  "success": true,
  "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002",
  "trace_id": "2efa9340-b21b-4e26-9e14-4aac95f343ab",
  "status": "processing"
}
```

Använd sedan den `task_id` för att pollera `POST /captcha/tasks` (rekommenderas var 3-5 sekund) för att hämta resultatet:

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/captcha/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002"
}'
```

Under bearbetning kommer `status: processing` att returneras:

```json theme={null}
{ "success": true, "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002", "status": "processing" }
```

När bearbetningen är klar kommer `status: ready` och token att returneras:

```json theme={null}
{
  "success": true,
  "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002",
  "status": "ready",
  "token": "03AFcWeA5mfdNlQD0RGX9PTWPs0l65QukjwbYObCue5hygRuA6......"
}
```

Avgiftsinformation: I asynkront läge debiteras varken skapande av uppgifter eller polling "under bearbetning"; **debiteras endast en gång när resultatet framgångsrikt hämtas** (samma pris som i synkront läge). Därför kommer avbokning av ännu inte slutförda uppgifter under rotationen inte att medföra kostnader. `/captcha/tasks` är gemensamt för alla captcha-gränssnitt (token och recognition-serier), och du kan pollera med samma `task_id`.

## Felhantering

Vid anrop av API:et, om ett fel uppstår, kommer API:et att returnera motsvarande felkod och information. Till exempel:

* `400 token_mismatched`: Bad request, möjligtvis på grund av saknade eller ogiltiga parametrar.
* `400 api_not_implemented`: Bad request, möjligtvis på grund av saknade eller ogiltiga parametrar.
* `401 invalid_token`: Obehörig, ogiltig eller saknad auktoriseringstoken.
* `429 too_many_requests`: För många begärningar, du har överskridit hastighetsgränsen.
* `500 api_error`: Internt serverfel, något gick fel på servern.

### Exempel på felrespons

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

## Slutsats

Genom detta dokument har du fått en förståelse för hur du använder Recaptcha3-protokollet för att identifiera API så att användare inte behöver identifiera och klicka på Recaptcha3-verifieringsbilder, utan bara behöver skicka Website Key för att möjliggöra automatisk avkodning i bakgrunden och slutföra verifieringen. Vi hoppas att detta dokument kan hjälpa dig att bättre integrera och använda detta API. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.
