Skip to main content
W tym artykule przedstawimy sposób integracji API rozpoznawania protokołu Recaptcha2, które pozwala użytkownikom na automatyczne dekodowanie i zakończenie weryfikacji w tle, bez potrzeby rozpoznawania i klikania na obrazy kodów weryfikacyjnych Recaptcha2, wystarczy przesłać klucz witryny.

Proces aplikacji

Aby korzystać z API rozpoznawania protokołu Recaptcha2, 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 skorzystać z usługi za darmo; w przypadku niewystarczającego limitu możesz doładować saldo ogólne w konsoli.
📘 Pełna dokumentacja: API rozpoznawania protokołu Recaptcha2 →

Podstawowe użycie

Najpierw zapoznaj się z podstawowym sposobem użycia, polegającym na wprowadzeniu URL witryny, która wymaga przetworzenia kodu weryfikacyjnego, aby uzyskać przetworzony wynik. Najpierw musisz przekazać prosty parametr website_url, nasza przykładowa witryna to: https://www.google.com/recaptcha/api2/demo, musimy uzyskać website_key na stronie website_url, najpierw otwórz tę stronę, naciśnij F12, aby przejść do konsoli, a następnie w zakładce Elementy wykonaj globalne wyszukiwanie recaptcha-demo, uzyskując poniższy wynik:

Gdzie data-sitekey odpowiada ciągowi znaków, który jest wartością website_key, poniżej znajdują się konkretne wyniki parametrów:

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:
  • website_url: URL witryny, która wymaga przetworzenia kodu weryfikacyjnego.
  • website_key: identyfikator klucza witryny w Recaptcha2.
  • proxy: opcjonalne, własny proxy (Bring Your Own Proxy). Po ustawieniu usługa będzie korzystać z dostarczonego przez Ciebie adresu IP proxy do dekodowania kodu weryfikacyjnego, aby kontrolować jakość wyjściowego adresu IP (na przykład, aby uniknąć blokady przez docelową witrynę z powodu publicznego adresu IP proxy, co skutkuje zwróceniem 410 Gone). Format to scheme://[user:pass@]host:port, scheme obsługuje http/https/socks4/socks5, na przykład http://user:pass@1.2.3.4:8080. Jeśli nie wypełnisz, użyje domyślnego proxy platformy.
Po dokonaniu wyboru można zauważyć, że po prawej stronie wygenerowano odpowiedni kod, jak pokazano na rysunku:

Kliknij przycisk „Spróbuj”, aby przeprowadzić test, jak pokazano na powyższym obrazku, tutaj uzyskaliśmy następujący wynik:
Wynik zawiera wiele pól, które są opisane poniżej:
  • token, wynik weryfikacji po przetworzeniu zadania Recaptcha2.
  • started_at, finished_at: czas rozpoczęcia i zakończenia przetwarzania tego żądania, znacznik czasu Unix (sekundy, liczba zmiennoprzecinkowa).
  • elapsed: całkowity czas przetwarzania (sekundy).
Możemy zauważyć, że otrzymaliśmy wynik weryfikacji Recaptcha2, który możemy wykorzystać do wysłania POST lub symulacji przesyłania do docelowej witryny, jednorazowego użytku, ważny przez 120 sekund, zaleca się użycie w ciągu 60 sekund. Następnie dostarczymy fragment kodu w Pythonie, aby przesłać przetworzony token do docelowej witryny w celu przejścia przez weryfikację Recaptcha2. Najpierw musimy dowiedzieć się, jak witryna wysyła żądania POST, abyśmy mogli wprowadzić wygenerowany token. Musimy najpierw otworzyć konsolę F12, a następnie ręcznie przejść przez weryfikację. Na koniec możemy zobaczyć, że witryna wysłała żądanie POST, musimy tylko sprawdzić konstrukcję tego żądania POST, a konkretny proces wygląda następująco:
  • Najpierw ręcznie przechodzimy przez weryfikację, szczegóły przedstawione na poniższym obrazku:

  • Następnie klikamy submit, aby obserwować zmiany w sieci w konsoli, szczegóły przedstawione na poniższym obrazku:

  • Analizując konstrukcję żądania POST w tej przesyłce, na końcu można kliknąć prawym przyciskiem myszy na to żądanie, aby skopiować kod CURL, jak pokazano na poniższym obrazku:

Z powyższej analizy wynika, że URL żądania POST to: https://www.google.com/recaptcha/api2/demo, musimy jedynie przesłać parametr g-recaptcha-response, a następnie wystarczy, że przekażemy przetworzony token do poniższego data, aby wywołać token w celu weryfikacji, a konkretny kod CURL wygląda następująco:
Kod Pythona do wywołania weryfikacji tokena wygląda następująco:
Następnie uruchamiamy kod i obserwujemy, że konsola pokazuje taki wynik:

Na koniec przeszliśmy weryfikację protokołu Recaptcha2. Dodatkowo, jeśli chcesz wygenerować odpowiedni kod do integracji, możesz po prostu skopiować wygenerowany kod, na przykład kod CURL wygląda następująco:
Kod Pythona do integracji wygląda następująco:

Tryb asynchroniczny (async)

Domyślnie API działa w trybie synchronicznym: 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, a następnie zająć się innymi rozwiązaniami, 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, nie blokując oczekiwania:
Aby aktywnie sprawdzić postęp, możesz użyć tego task_id, aby zapytać o POST /captcha/tasks (zaleca się co 3-5 sekund). Ten interfejs nie uruchomi ani nie przyspieszy 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 płaci raz przy pierwszym odczycie udanego wyniku (zgodnie z istniejącym zachowaniem i cenami w trybie synchronicznym). Serwer samodzielnie przyspiesza przetwarzanie zadań, ale nie obciąży kosztami, jeśli zadanie zakończy się wcześniej 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 protokołu Recaptcha2 do rozpoznawania, aby użytkownicy nie musieli rozpoznawać i klikać na obrazy captcha Recaptcha2, wystarczy przesłać 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.