Integrasi

Retool + CaptchaAI: Internal Tool dengan Penanganan CAPTCHA

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:

  1. Mengambil sitekey dan URL halaman sebagai masukan
  2. Kirimkan CAPTCHA ke CaptchaAI
  3. Polling untuk hasilnya
  4. 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:

Komentar dinonaktifkan untuk artikel ini.