Retool memungkinkan tim membangun alat internal dengan cepat. Saat alat tersebut perlu berinteraksi dengan layanan eksternal yang dilindungi CAPTCHA — mengirimkan formulir, mengambil data dari portal, atau mengotomatiskan alur kerja pihak ketiga —CaptchaAImenangani solve melalui cookieri REST API Retool.
Panduan ini menunjukkan cara menyiapkan CaptchaAI sebagai sumber daya REST API di Retool, membuat cookieri untuk mengirimkan dan mengambil solusi CAPTCHA, dan menyambungkannya ke UI aplikasi Anda.
Skenario Dunia Nyata
Tim operasi Anda menggunakan aplikasi Retool untuk mengirimkan data ke portal pemerintah yang memerlukan reCAPTCHA v2. Daripada menyelesaikan CAPTCHA secara manual, aplikasi Retool:
- Mengambil sitekey dan URL halaman sebagai masukan
- Kirimkan CAPTCHA ke CaptchaAI
- Polling untuk hasilnya
- Menampilkan token yang diselesaikan untuk digunakan dalam pengiriman formulir
Langkah 1: Buat CaptchaAI sebagai Sumber Daya REST API
Di Retool, navigasikan ke Resources -> Create New -> REST API:
| Bidang | Nilai |
|---|---|
| Nama | CaptchaAI |
| URL dasar | https://ocr.captchaai.com |
| Otentikasi | Tidak ada (kunci API dikirim sebagai parameter cookieri) |
Simpan sumber daya. Anda akan mereferensikannya dalam cookieri.
Langkah 2: Buat Cookieri Kirim
Buat cookieri baru bernama submitCaptcha:
| Pengaturan | Nilai |
|---|---|
| Sumber daya | CaptchaAI |
| Jenis Tindakan | DAPATKAN |
| Jalur URL | /in.php |
Parameter Cookieri:
| Kunci | Nilai |
|---|---|
key |
{{secretsStore.CAPTCHAAI_API_KEY}} |
method |
userrecaptcha |
googlekey |
{{sitekeyInput.value}} |
pageurl |
{{pageurlInput.value}} |
json |
1 |
Simpan kunci API Anda di Penyimpanan Rahasia Retool (Pengaturan -> Rahasia) untuk menghindari hardcoding.
Transformator (opsional):
// Parse the response
const data = {{ submitCaptcha.data }};
if (data.status === 1) {
return { taskId: data.request, status: 'submitted' };
}
return { error: data.request, status: 'failed' };
Langkah 3: Buat Cookieri Jajak Pendapat
Buat cookieri bernama pollResult:
| Pengaturan | Nilai |
|---|---|
| Sumber daya | CaptchaAI |
| Jenis Tindakan | DAPATKAN |
| Jalur URL | /res.php |
Parameter Cookieri:
| Kunci | Nilai |
|---|---|
key |
{{secretsStore.CAPTCHAAI_API_KEY}} |
action |
get |
id |
{{submitCaptcha.data.request}} |
json |
1 |
Transformator:
const data = {{ pollResult.data }};
if (data.status === 1) {
return { token: data.request, status: 'solved' };
}
if (data.request === 'CAPCHA_NOT_READY') {
return { status: 'pending' };
}
return { error: data.request, status: 'error' };
Langkah 4: Bangun Polling Loop dengan JavaScript
Buat cookieri JavaScript bernama solveCaptcha yang mengatur siklus pengiriman dan polling:
// solveCaptcha — JavaScript Query
async function solve() {
// Submit the CAPTCHA task
await submitCaptcha.trigger();
const submitResult = submitCaptcha.data;
if (submitResult.status !== 1) {
return { error: submitResult.request, status: 'submit_failed' };
}
const taskId = submitResult.request;
// Wait 15 seconds before first poll
await new Promise(r => setTimeout(r, 15000));
// Poll up to 20 times (100 seconds max)
for (let i = 0; i < 20; i++) {
await pollResult.trigger({
additionalScope: { taskId: taskId }
});
const result = pollResult.data;
if (result.status === 1) {
return { token: result.request, status: 'solved' };
}
if (result.request !== 'CAPCHA_NOT_READY') {
return { error: result.request, status: 'error' };
}
// Wait 5 seconds before next poll
await new Promise(r => setTimeout(r, 5000));
}
return { error: 'Polling timeout', status: 'timeout' };
}
return solve();
Langkah 5: Bangun UI
Buat tata letak aplikasi Retool sederhana:
Bagian Masukan
- Input Teks (
sitekeyInput): Label "reCAPTCHA Sitekey" - Input Teks (
pageurlInput): Label "URL Halaman" - Tombol (
solveButton): Label "Selesaikan CAPTCHA", onClick ->solveCaptcha.trigger()
Bagian Status
- Teks komponen:
{{ solveCaptcha.isFetching ? "Solving..." : "" }} - Indikator Pemuatan: Terlihat saat
{{ solveCaptcha.isFetching }}
Bagian Hasil
- Area Teks (
tokenOutput): - Nilai:
{{ solveCaptcha.data?.token || '' }} - Label: "Token Terpecahkan"
- Hanya baca
- Tombol Salin: Menyalin token ke papan klip
- Lencana Status: Menunjukkan keberhasilan/error berdasarkan
{{ solveCaptcha.data?.status }}
Langkah 6: Gunakan Token di Cookieri Hilir
Setelah diselesaikan, gunakan token dalam cookieri Retool lain yang mengirimkan formulir:
Buat cookieri bernama submitForm:
| Pengaturan | Nilai |
|---|---|
| Sumber daya | API target Anda |
| Jenis Tindakan | POSTING |
| Tubuh | Formulir data termasuk g-recaptcha-response: {{solveCaptcha.data.token}} |
Hubungkan ini ke tombol "Kirim Formulir" yang diaktifkan hanya ketika {{ solveCaptcha.data?.status === 'solved' }}.
Pemecahan Masalah
| Masalah | Penyebab | Solusi |
|---|---|---|
ERROR_WRONG_USER_KEY |
Kunci API tidak ada di Penyimpanan Rahasia atau nilainya salah | Verifikasi kunci di Pengaturan -> Rahasia |
| Cookieri mengembalikan teks mentah, bukan JSON | Parameter json=1 tidak ada |
Tambahkan json: 1 ke parameter cookieri |
| Timeout polling | Jenis CAPTCHA membutuhkan waktu solve yang lebih lama | Tingkatkan iterasi polling dari 20 menjadi 30 |
submitCaptcha.data tidak terdefinisi |
Cookieri belum berjalan | Pastikan cookieri pengiriman dijalankan sebelum polling |
| Timeout cookieri JavaScript | Batas 120 detik Retool untuk cookieri JS | Kurangi polling menjadi 20 iterasi dengan interval 5 detik |
Pertanyaan Umum
Bisakah saya menyimpan kunci API CaptchaAI dengan aman di Retool?
Ya. Gunakan Toko Rahasia Retool (Rahasia Lingkungan ->) dan rujuk sebagai {{secretsStore.CAPTCHAAI_API_KEY}}. Hal ini membuat kunci dari definisi cookieri tetap terlihat oleh pembuat aplikasi.
Apakah ini berfungsi dengan Retool Cloud dan Self-hosted?
Ya, kedua versi mendukung sumber daya REST API dan cookieri JavaScript. Retool yang dihosting sendiri juga dapat langsung mengenai API CaptchaAI tanpa persyaratan proxy.
Bisakah saya membuat modul solve CAPTCHA yang dapat digunakan kembali di Retool?
Ya. Buat Modul Retool dengan cookieri submit/poll dan komponen UI, lalu sematkan di aplikasi apa pun yang memerlukan solve CAPTCHA.
Jenis CAPTCHA apa yang dapat saya selesaikan melalui Retool?
Semua jenis CaptchaAI mendukung - reCAPTCHA v2/v3, Cloudflare Turnstile, CAPTCHA Gambar. Sesuaikan method dan parameter dalam cookieri pengiriman.
Artikel Terkait
- Cara Mengatasi Callback Recaptcha V2 Menggunakan Api
- Penanganan Situs yang Sama Turnstile Recaptcha V2
- Mekanisme Callback Recaptcha V2
Langkah Selanjutnya
Tambahkan solve CAPTCHA ke alat internal Retool Anda —dapatkan kunci API CaptchaAI Andadan menyiapkan sumber daya REST API.
Panduan terkait:
- Zapier + CaptchaAI: Pemecahan CAPTCHA Tanpa Kode
- Buat (Integromat) + CaptchaAI
- Mengekstrak Parameter reCAPTCHA dari Sumber Halaman