Skip to main content
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 Recaptcha2 bildigenkänning API, börja med att gå till Ace Data Cloud-konsolen för att få din API-token, som du kan spara för framtida bruk. Om du inte har loggat in eller registrerat dig, kommer du automatiskt att omdirigeras till inloggningssidan där du uppmanas 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 kan användas för att anropa alla tjänster på plattformen, 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 är otillräcklig kan du ladda på allmänna saldot i konsolen.
📘 Fullständig dokumentation: Recaptcha2 bildigenkänning API →

Grundläggande användning

Först, låt oss förstå den grundläggande användningen. 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 nedan:

Vi behöver klicka på verifieringsrutan för att få fram verifieringsbilden. 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, som är bilden som den röda pilen pekar på i bilden ovan, och bilden 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 vi rekommenderar en komprimeringswebbplats, där du kan komprimera bildens storlek och dimensioner, resultatet efter komprimering visas nedan: Du behöver också ange det relaterade identifieringsinnehållet för verifieringsbilden, parameter question, vi har bara tillhandahållit följande innehållstabell som referens:

Kinesisk innehållstabell

Engelsk innehållstabell

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 begärningshuvuden, inklusive:
  • accept: vilken typ av svarformat du vill ta emot, här anges application/json, vilket innebär JSON-format.
  • authorization: nyckeln för att anropa API, efter ansökan kan du direkt välja från rullgardinsmenyn.
Dessutom ställdes begärningskroppen 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:
Det returnerade resultatet har flera fält, som beskrivs nedan:
  • solution, resultatet av verifieringen efter att Recaptcha2 verifieringsbilden har bearbetats.
    • size, storleken på Recaptcha2 verifieringsbilden.
    • label, innehållet som identifierades i Recaptcha2 verifieringsbilden.
    • confidences, förtroendet för identifieringsområdet i 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, flera områden anges som multi.
  • started_at, finished_at: tiden för när denna begäran började bearbetas och när resultatet producerades, Unix-tidsstämpel (sekunder, flyttal).
  • elapsed: den totala tiden för denna bearbetning (sekunder).
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, och 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:
Python-koden för integration ser ut som följer:

Asynkron läge (async)

Som standard är API:et synkront och blockerande: en begäran kommer att vänta tills resultatet av igenkänningen har behandlats innan det returneras. Om du gör en multi-solver rotation och vill “skicka uppgiften och omedelbart få task_id, först schemalägga andra lösare och sedan återkomma för att läsa resultatet”, kan du skicka in async: true i begärningskroppen. När du skickar in async: true kommer gränssnittet omedelbart att returnera ett task_id utan att blockera:
För att aktivt kontrollera framsteg kan du använda detta task_id för att fråga POST /captcha/tasks (rekommenderas var 3-5 sekund). Detta gränssnitt kommer inte att utlösa eller påskynda uppgiftsbehandlingen; även om du inte frågar, tappar internetanslutningen eller stänger klienten, kommer servern fortfarande att fortsätta behandlingen:
Under behandling kommer det att returnera status: processing:
När behandlingen är klar kommer det att returnera status: ready och igenkänningsresultatet solution (fältstrukturen är helt identisk med den synkrona läget):
Avgiftsbeskrivning: I asynkront läge debiteras inte skapandet av uppgifter och läsning av “under behandling” status; klienten debiteras en gång när den första framgångsrika resultatet läses (i enlighet med befintligt beteende och priser för synkront läge). Servern kommer att driva uppgiften själv, men kommer inte att debitera i förväg bara för att bakgrunden har slutfört. Om uppgiften inte lyckas inom 120 sekunder kommer den att avslutas med HTTP 504 timeout, utan debitering. /captcha/tasks ansvarar inte för att driva uppgiften.

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: 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

Slutsats

Genom detta dokument har du fått en förståelse för hur du använder Recaptcha2 bildigenkännings-API för att låta användare ange det som ska kännas igen och Recaptcha2 captcha-bilden, och slutligen returnera koordinaterna för de små bilder 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.