Zum Hauptinhalt springen
Dieser Artikel beschreibt eine Integrationsanleitung für die Recaptcha2 Bildverarbeitungs-API, die es ermöglicht, den Inhalt, den der Benutzer erkennt, und das Recaptcha2 CAPTCHA-Bild einzugeben und schließlich die Koordinaten der kleinen Bilder zurückzugeben, die angeklickt werden müssen, um die Verifizierung abzuschließen.

Antragsprozess

Um die API zu nutzen, müssen Sie zunächst auf die entsprechende Seite der Recaptcha2 Bildverarbeitungs-API gehen und den entsprechenden Dienst beantragen. Nachdem Sie die Seite betreten haben, klicken Sie auf die Schaltfläche „Acquire“, wie im Bild gezeigt: Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, die Sie zur Registrierung und Anmeldung einlädt. Nach der Anmeldung oder Registrierung werden Sie automatisch zur aktuellen Seite zurückgeleitet. Bei der ersten Beantragung gibt es ein kostenloses Kontingent, das es Ihnen ermöglicht, die API kostenlos zu nutzen.

Grundlegende Nutzung

Zunächst sollten Sie die grundlegende Nutzung verstehen. Wir müssen das Recaptcha2 CAPTCHA-Bild von der Website erfassen. Die URL der Beispielwebsite lautet: https://www.google.com/recaptcha/api2/demo, die spezifische Seite ist wie im folgenden Bild dargestellt:

Wir müssen das Kontrollkästchen für das CAPTCHA anklicken, damit das CAPTCHA-Bild erscheint. Im obigen Bild zeigt der gelbe Pfeil auf einen Text, der den Wert des question im Folgenden darstellt. Zunächst müssen wir ein einfaches image-Feld übergeben, das das spezifische Recaptcha2 CAPTCHA-Bild ist, das im obigen Bild durch den roten Pfeil angezeigt wird. Außerdem muss das Bild auf die Standardgröße (100x100, 300x300, 450x450) skaliert werden, damit der Dienst den Bildtyp bestimmen kann. Die Bildkompression müssen Sie selbst durchführen. In diesem Artikel empfehlen wir eine Kompressionswebsite, auf der Sie die Größe und das Format des Bildes komprimieren können. Das komprimierte Ergebnis ist wie im Bild dargestellt: Außerdem müssen Sie den Erkennungsinhalt, der mit dem CAPTCHA-Bild verbunden ist, als Parameter question eingeben. Wir haben nur die folgende Inhaltsübersicht bereitgestellt, die als Referenz dienen kann:

Chinesische Inhaltsübersicht

{
  "/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": "楼梯"
}

Englische Inhaltsübersicht

{
  "/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 也是一样的
  "/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"
}
Aus dem obigen Text können wir den Parameter question auf den entsprechenden Wert für den Feuerhydranten /m/01pns0 setzen, der spezifische Inhalt ist wie folgt:

Hier haben wir die Request-Header festgelegt, einschließlich:
  • accept: In welchem Format Sie die Antwort erhalten möchten, hier eingetragen als application/json, also im JSON-Format.
  • authorization: Der Schlüssel zur API-Nutzung, den Sie nach der Beantragung direkt auswählen können.
Zusätzlich haben wir den Request-Body festgelegt, einschließlich:
  • image: Das Base64-kodierte CAPTCHA-Bild.
  • question: Die Frage-ID, bitte in der Tabelle nachsehen, die mit /m/ beginnt.
Nach der Auswahl können Sie feststellen, dass auf der rechten Seite auch der entsprechende Code generiert wurde, wie im Bild gezeigt:

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen, wie im obigen Bild gezeigt. Hier haben wir das folgende Ergebnis erhalten:
{
  "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"
  }
}
Das Rückgabeergebnis hat mehrere Felder, die wie folgt beschrieben werden:
  • solution, das Ergebnis der Verifizierung nach der Bearbeitung des Recaptcha2 CAPTCHA-Bildes.
    • size, die Größe des Recaptcha2 CAPTCHA-Bildes.
    • label, der erkannte Inhalt des Recaptcha2 CAPTCHA-Bildes.
    • confidences, die Vertrauenswürdigkeit der Erkennungsbereiche des Recaptcha2 CAPTCHA-Bildes, die Bereiche beginnen bei 0.
    • objects, die Bereiche des Recaptcha2 CAPTCHA-Bildes, die den Erkennungsinhalt erfüllen, die Bereiche beginnen bei 0.
    • type, der Typ der Aufgabe des Recaptcha2 CAPTCHA-Bildes, bei mehreren Bereichen ist es multi.
Wir können sehen, dass wir das Verifizierungsergebnis des Recaptcha2 CAPTCHA-Bildes erhalten haben. Zunächst teilen wir das CAPTCHA-Bild in Bereiche auf, wie im folgenden Bild dargestellt:

Die Bereiche beginnen alle bei 0. Aus dem Ergebnis objects haben wir 2, 5, 7 erhalten, wir müssen nur auf diese drei Bereiche klicken, um die Verifizierung zu bestehen. Wenn Sie außerdem den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel ist der CURL-Code wie folgt:
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..."
}'
Der Python-Integrationscode ist wie folgt:
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)

Fehlerbehandlung

Bei der API-Anruf, wenn ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:
  • 400 token_mismatched: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 400 api_not_implemented: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
  • 401 invalid_token: Unbefugt, ungültiger oder fehlender Autorisierungstoken.
  • 429 too_many_requests: Zu viele Anfragen, Sie haben das Rate-Limit überschritten.
  • 500 api_error: Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

Fehlerantwort Beispiel

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

Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die Recaptcha2 Bildverarbeitungs-API verwenden, um Benutzereingaben zu erkennen und das Recaptcha2-Bild zu verarbeiten, und schließlich die Koordinaten des kleinen Bildes zurückzugeben, das angeklickt werden muss, um die Verifizierung abzuschließen. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu nutzen. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.