Skip to main content
W tym artykule przedstawimy sposób integracji API rozpoznawania protokołu Recaptcha3, który pozwala użytkownikom na automatyczne dekodowanie w tle bez konieczności rozpoznawania i klikania na obrazy kodów weryfikacyjnych Recaptcha3, wystarczy przesłać klucz witryny.

Proces aplikacji

Aby korzystać z API rozpoznawania protokołu Recaptcha3, najpierw przejdź do konsoli Ace Data Cloud, aby uzyskać swój token API, który należy zachować na przyszłość. Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zakończeniu zostaniesz automatycznie przekierowany z powrotem na bieżącą stronę. Jeden token API wystarczy do korzystania ze wszystkich usług platformy, nie ma potrzeby składania osobnych wniosków dla każdej usługi. Przy pierwszym wniosku otrzymasz darmowy limit, aby móc go przetestować; w przypadku niewystarczającego limitu możesz doładować saldo ogólne w konsoli.
📘 Pełna dokumentacja: API rozpoznawania protokołu Recaptcha3 →

Podstawowe użycie

Najpierw zapoznaj się z podstawowym sposobem użycia. W porównaniu do Recaptcha2, musimy dodatkowo przekazać jeden parametr page_action, który należy uzyskać z kodu. Prezentowany adres URL do testowania to: https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php, poniżej przedstawiamy sposób jego uzyskania:

Szybka metoda:

Otwórz f12, a następnie w zakładce Elementy wyszukaj .execute(, w obszarze zaznaczonym na czerwono zobaczysz parametr action, a także ciąg znaków, który również będzie potrzebny w dalszej części, jak pokazano na poniższym obrazku.

Następnie musisz wprowadzić URL witryny, na której chcesz przetworzyć kod weryfikacyjny, aby uzyskać przetworzony wynik. Najpierw musisz prosto przekazać pole website_url, a na końcu musisz wprowadzić parametr website_key, który można uzyskać powyżej, również jako ciąg znaków po execute. Następnie możemy wypełnić odpowiednie pola na interfejsie, jak pokazano na obrazku:

Można zauważyć, że ustawiliśmy nagłówki żądania, w tym:
  • accept: jakiego formatu odpowiedzi oczekujesz, tutaj wpisujemy application/json, czyli format JSON.
  • authorization: klucz do wywołania API, po złożeniu wniosku można go bezpośrednio wybrać z rozwijanej listy.
Dodatkowo ustawiono ciało żądania, w tym:
  • page_action: należy uzyskać z kodu witryny z kodem weryfikacyjnym.
  • website_url: URL witryny, na której chcesz przetworzyć kod weryfikacyjny.
  • website_key: identyfikator klucza witryny w Recaptcha3.
Po dokonaniu wyboru można zauważyć, że po prawej stronie wygenerowano odpowiedni kod, jak pokazano na obrazku:

Kliknij przycisk „Try”, aby przeprowadzić test, jak pokazano na powyższym obrazku, a oto uzyskany wynik:
Wynik zawiera wiele pól, które są opisane poniżej:
  • token, wynik weryfikacji po przetworzeniu zadania Recaptcha3.
  • started_at, finished_at: czas rozpoczęcia przetwarzania i uzyskania wyniku, znacznik czasu Unix (sekundy, liczba zmiennoprzecinkowa).
  • elapsed: całkowity czas przetwarzania (sekundy).
Możemy zauważyć, że otrzymaliśmy wynik weryfikacji Recaptcha3, który możemy wykorzystać do symulacji przesyłania do docelowej strony internetowej za pomocą POST lub GET, jednorazowego użytku, ważny przez 120s, zaleca się użycie w ciągu 60s. Poniżej przedstawiamy krótki opis sposobu przesyłania wygenerowanego tokena do docelowej strony internetowej: Wywołanie kodu weryfikacji tokena w wersji Python:
W związku z tym możemy uzyskać wynik:
Można zobaczyć, że success oznacza wynik przetwarzania weryfikacji w tym miejscu, więc pomyślnie przeszliśmy weryfikację kodu Recaptcha3. Jeśli chcesz wygenerować odpowiedni kod do integracji, możesz go bezpośrednio skopiować, na przykład kod CURL wygląda następująco:
Kod do integracji w Pythonie wygląda następująco:

Tryb asynchroniczny (async)

Domyślnie API jest synchronizowane i blokujące: jedno żądanie będzie czekać, aż przetwarzanie tokena zostanie zakończone, zanim zwróci wynik. Jeśli wykonujesz rotację wielu rozwiązań (multi-solver rotation) i chcesz „natychmiast uzyskać task_id po złożeniu zadania, aby najpierw zlecić inne rozwiązania, a później wrócić po wyniki”, możesz przekazać async: true w ciele żądania. Po przekazaniu async: true, interfejs natychmiast zwróci task_id, a nie będzie blokować oczekiwania:
Aby aktywnie sprawdzić postęp, możesz użyć tego task_id, aby zapytać POST /captcha/tasks (zaleca się co 3-5 sekund). Ten interfejs nie będzie uruchamiać ani przyspieszać przetwarzania zadań; nawet jeśli nie zapytasz, stracisz połączenie lub wyjdziesz z klienta, serwer nadal będzie przetwarzać:
W trakcie przetwarzania zwróci status: processing:
Po zakończeniu przetwarzania zwróci status: ready i token:
Opis rozliczeń: w trybie asynchronicznym, tworzenie zadań i odczytywanie statusu „w trakcie przetwarzania” nie są obciążane; klient jest obciążany raz przy pierwszym odczycie pomyślnego wyniku (zgodnie z istniejącym zachowaniem i ceną w trybie synchronizowanym). Serwer samodzielnie przyspiesza przetwarzanie zadań, ale nie obciąży wcześniej, ponieważ zadanie zostało zakończone w tle. Jeśli zadanie nie zakończy się pomyślnie w ciągu 120 sekund, zakończy się jako HTTP 504 timeout, bez obciążenia. /captcha/tasks nie odpowiada za przyspieszanie zadań.

Obsługa błędów

Podczas wywoływania API, jeśli napotkasz błąd, API zwróci odpowiedni kod błędu i informacje. Na przykład:
  • 400 token_mismatched: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 400 api_not_implemented: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 401 invalid_token: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacji.
  • 429 too_many_requests: Zbyt wiele żądań, przekroczyłeś limit.
  • 500 api_error: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

Przykład odpowiedzi błędu

Wnioski

Dzięki temu dokumentowi zrozumiałeś, jak używać API do rozpoznawania protokołu Recaptcha3, aby użytkownicy nie musieli rozpoznawać i klikać obrazków z kodem weryfikacyjnym Recaptcha3, wystarczy, że przekażą klucz witryny, aby zrealizować automatyczne dekodowanie w tle i zakończyć weryfikację. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, skontaktuj się z naszym zespołem wsparcia technicznego.