> ## 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.

# Recaptcha2 Bildverarbeitungs-API Integrationsanleitung

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

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, um schließlich die Koordinaten des kleinen Bildes zurückzugeben, das angeklickt werden muss, um die Verifizierung abzuschließen.

## Antragsprozess

Um die Recaptcha2 Bildverarbeitungs-API zu nutzen, müssen Sie zunächst Ihr API-Token im [Ace Data Cloud Dashboard](https://platform.acedata.cloud/console/applications) abrufen und für zukünftige Verwendung aufbewahren.

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

Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, die Sie zur Registrierung und Anmeldung einlädt. Nach Abschluss werden Sie automatisch zur aktuellen Seite zurückgeleitet.

**Ein API-Token reicht aus, um alle Dienste der Plattform zu nutzen, es ist nicht erforderlich, für jeden Dienst separat zu beantragen.** Bei der ersten Beantragung erhalten Sie ein kostenloses Kontingent, um es kostenlos auszuprobieren; wenn das Kontingent nicht ausreicht, können Sie im [Dashboard](https://platform.acedata.cloud/console/coin) Ihr Guthaben aufladen.

> 📘 Vollständige Dokumentation: [Recaptcha2 Bildverarbeitungs-API →](https://platform.acedata.cloud/documents/captcha-recognition-recaptcha2)

## Grundlegende Nutzung

Zunächst sollten wir 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:

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

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 Textabschnitt, 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 Kompression des Bildes müssen Sie selbst durchführen. In diesem Artikel empfehlen wir eine [Kompressionswebsite](https://www.photopea.com/), auf der Sie die Größe und das Format des Bildes komprimieren können. Das komprimierte Ergebnis ist wie im Bild dargestellt:

![](https://cdn.acedata.cloud/l7aotl.png)

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

```json theme={null}
{
  "/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

```json theme={null}
{
  "/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:

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

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 sehen, dass auf der rechten Seite der entsprechende Code generiert wurde, wie im Bild dargestellt:

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

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen. Wie im obigen Bild zu sehen, haben wir folgendes Ergebnis erhalten:

```json theme={null}
{
  "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"
  }
}
```

Die Rückgabe enthält 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:

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

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 den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel ist der CURL-Code wie folgt:

```shell theme={null}
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:

```python theme={null}
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)
```

## Asynchroner Modus (async)

Standardmäßig ist die API synchron blockierend: Eine Anfrage wartet, bis das Erkennungsergebnis verarbeitet ist, bevor sie zurückgegeben wird. Wenn Sie eine Multi-Solver-Rotation durchführen und „nach dem Einreichen der Aufgabe sofort die task\_id erhalten möchten, um andere Solver zu planen und später zurückzukehren, um das Ergebnis abzurufen“, können Sie `async: true` im Anfragekörper übergeben.

Nach dem Übergeben von `async: true` gibt die Schnittstelle sofort eine `task_id` zurück, ohne zu blockieren und zu warten:

```shell theme={null}
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...",
  "async": true
}'
```

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

Verwenden Sie anschließend die `task_id`, um `POST /captcha/tasks` abzufragen (empfohlen alle 3-5 Sekunden), um das Ergebnis zu erhalten:

```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"
}'
```

Während der Verarbeitung wird `status: processing` zurückgegeben:

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

Nach Abschluss der Verarbeitung wird `status: ready` und das Erkennungsergebnis `solution` zurückgegeben (die Struktur der Felder ist identisch mit dem synchronen Modus):

```json theme={null}
{
  "success": true,
  "task_id": "61138bb6-19aa-11ec-a9c8-0242ac110002",
  "status": "ready",
  "solution": {
    "size": 300,
    "label": "/m/01pns0",
    "objects": [2, 5, 7],
    "type": "multi"
  }
}
```

Abrechnungsinformationen: Im asynchronen Modus werden die Erstellung von Aufgaben und die Abfrage „in Bearbeitung“ nicht berechnet; **es wird nur einmal berechnet, wenn das Erkennungsergebnis erfolgreich abgerufen wird** (zum gleichen Preis wie im synchronen Modus). Daher entstehen beim Abbrechen von noch nicht abgeschlossenen Aufgaben während der Rotation keine Kosten. `/captcha/tasks` ist für alle Captcha-Schnittstellen (Token und Erkennungsserie) allgemein und kann mit derselben `task_id` abgefragt werden.

## Fehlerbehandlung

Wenn beim Aufruf der API 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.

### Beispiel für eine Fehlerantwort

```json theme={null}
{
  "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-Bilderkennung-API verwenden, um den Benutzern die Eingabe des Erkennungsergebnisses und des Recaptcha2-Captcha-Bildes zu ermöglichen, 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.
