Hoppa till huvudinnehåll
Denna artikel kommer att introducera en Recaptcha2 bildigenkänning API integration instruktion, som kan identifiera innehållet som användaren anger och Recaptcha2 verifieringsbilden, och slutligen returnera koordinaterna för de små bilder som behöver klickas på för att slutföra verifieringen.

Ansökningsprocess

För att använda API:et måste du först gå till Recaptcha2 bildigenkänning API motsvarande sida för att ansöka om den tjänst som behövs. När du kommer till sidan, klicka på “Acquire” knappen, som visas i bilden nedan: Om du inte har loggat in eller registrerat dig, kommer du automatiskt att omdirigeras till inloggningssidan som bjuder in dig att registrera dig och logga in. Efter att ha loggat in eller registrerat dig kommer du automatiskt att återvända till den aktuella sidan. Vid första ansökan kommer det att finnas en gratis kvot som ges, så att du kan använda detta API gratis.

Grundläggande användning

Först, låt oss förstå den grundläggande användningsmetoden. Vi behöver fånga Recaptcha2 verifieringsbilden från webbplatsen, här är exempelwebbplatsens URL: https://www.google.com/recaptcha/api2/demo, den specifika sidan visas i bilden nedan:

Vi behöver klicka på kryssrutan för verifieringen för att verifieringsbilden ska visas. I bilden ovan pekar den gula pilen på en text, och detta innehåll är värdet för question nedan. Först behöver vi enkelt skicka ett image fält, vilket är den specifika Recaptcha2 verifieringsbilden, bilden som pekas på av den röda pilen i bilden ovan, och den måste skalas till standardstorlek (100x100, 300x300, 450x450), så att tjänsten kan avgöra bildtypen. Bildkomprimeringen måste du göra själv, och denna artikel rekommenderar en komprimeringswebbplats, där du kan komprimera bildens storlek och dimensioner. Resultatet efter komprimering visas i bilden nedan: Du behöver också ange det identifieringsinnehåll som är relaterat till verifieringsbilden, parameter question. Vi har bara tillhandahållit följande innehållstabell som referens:

Kinesisk innehållstabell

{
  "/m/0pg52": "出租车",
  "/m/01bjv": "巴士",
  "/m/02yvhj": "校车",
  "/m/04_sv": "摩托车",
  "/m/013xlm": "拖拉机",
  "/m/01jk_4": "烟囱",
  "/m/014xcs": "人行横道",
  "/m/015qff": "红绿灯",
  "/m/0199g": "自行车",
  "/m/015qbp": "停车计价表",
  "/m/0k4j": "汽车",
  "/m/015kr": "桥",
  "/m/019jd": "船",
  "/m/0cdl1": "棕榈树",
  "/m/09d_r": "山",
  "/m/01pns0": "消防栓",
  "/m/01lynh": "楼梯"
}

Engelsk innehållstabell

{
  "/m/0pg52": "taxis",
  "/m/01bjv": "bus",
  "/m/02yvhj": "school bus",
  "/m/04_sv": "motorcycles",
  "/m/013xlm": "tractors",
  "/m/01jk_4": "chimneys",
  "/m/014xcs": "crosswalks", // pedestrian crossings är också detsamma
  "/m/015qff": "traffic lights",
  "/m/0199g": "bicycles",
  "/m/015qbp": "parking meters",
  "/m/0k4j": "cars",
  "/m/015kr": "bridges",
  "/m/019jd": "boats",
  "/m/0cdl1": "palm trees",
  "/m/09d_r": "mountains or hills",
  "/m/01pns0": "fire hydrant",
  "/m/01lynh": "stairs"
}
Från ovanstående kan vi se att vi sätter parametern question till brandpostens motsvarande /m/01pns0, det specifika innehållet visas nedan:

Vi kan se att vi har ställt in Request Headers, inklusive:
  • accept: vilket format av svar du vill ta emot, här anges det som 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 ställdes Request Body in, inklusive:
  • image: Base64-kodad verifieringsbild.
  • question: fråga ID, vänligen kontrollera tabellen, som börjar med /m/.
När du har valt kan du se att motsvarande kod också genererades till höger, som visas i bilden nedan:

Klicka på “Try” knappen för att testa, som visas i bilden ovan, här fick vi följande resultat:
{
  "solution": {
    "size": 300,
    "label": "/m/01pns0",
    "confidences": [
      0,
      0.0007,
      1,
      0.0003,
      0.0046,
      1,
      0,
      1,
      0
    ],
    "objects": [
      2,
      5,
      7
    ],
    "type": "multi"
  }
}
Det returnerade resultatet har flera fält, som beskrivs nedan:
  • solution, resultatet av verifieringen efter att Recaptcha2 verifieringsbilden har behandlats.
    • size, storleken på Recaptcha2 verifieringsbilden.
    • label, det innehåll som identifierades av Recaptcha2 verifieringsbilden.
    • confidences, förtroendet för identifieringsområdet av Recaptcha2 verifieringsbilden, området börjar från 0.
    • objects, områden som uppfyller identifieringsinnehållet efter identifiering av Recaptcha2 verifieringsbilden, området börjar från 0.
    • type, typen av uppgift för Recaptcha2 verifieringsbilden, om det finns flera områden är det multi.
Vi kan se att vi har fått verifieringsresultatet för Recaptcha2 verifieringsbilden, vi börjar med att dela upp verifieringsbilden i områden, som visas i bilden nedan:

Vi kan se att områdena börjar från 0, från resultatet i objects fick vi 2,5,7, vi behöver bara simulera att klicka på dessa tre områden för att klara verifieringen. Om du vill generera motsvarande integrationskod kan du direkt kopiera den som genererats, till exempel CURL-koden nedan:
curl -X POST 'https://api.acedata.cloud/captcha/recognition/recaptcha2' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "question": "/m/01pns0",
  "image": "iVBORw0KGgoAAAANSUhEUgAAASoAAAEsCAIAAAD7AWllAAAAAX..."
}'
Python integrationskoden ser ut som följer:
import requests

url = "https://api.acedata.cloud/captcha/recognition/recaptcha2"

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

payload = {
    "question": "/m/01pns0",
    "image": "iVBORw0KGgoAAAANSUhEUgAAASoAAAEsCAIAAAD7AWllAAAAAX..."
}

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

Felhantering

När du anropar API:et, om du stöter på fel, kommer API:et att returnera motsvarande felkod och information. Till exempel:
  • 400 token_mismatched: Fel begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.
  • 400 api_not_implemented: Fel begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.
  • 401 invalid_token: Obefogad, ogiltig eller saknad auktoriseringstoken.
  • 429 too_many_requests: För många begärningar, du har överskridit hastighetsgränsen.
  • 500 api_error: Intern serverfel, något gick fel på servern.

Exempel på felrespons

{
  "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 Recaptcha2 bildigenkännings-API:et för att låta användare ange det som ska kännas igen och Recaptcha2 verifieringsbilden, och slutligen returnera koordinaterna för den lilla bild som behöver klickas på för att 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.