InsomniaでCAPTCHA APIをテストする

著者:solvethree読了時間:1分

JSON本文を使ってタスクを作成し、返されたタスクIDをコピーして、ステータスが ready または failed になるまでそのタスクを取得します。このテストにレスポンスチェーンは不要です。

このページの内容

ローカル設定を準備する

ワークスペースの API キー、対象サイトの有効なプロファイル、プロキシが必要です。タスクを送信する前にサイトプロファイルを設定してください。ホスト名とアクションを指定しても、プロファイルは作成されません。

solvethree-local という名前の非公開のローカル環境を作成し、以下の変数を設定してください。これらはこの手順用に選んだ名前であり、追加の API フィールドではありません。API キーとプロキシの認証情報を共有設定に含めないでください。

ローカル環境変数
ローカル環境変数
名前値
api_basehttps://api.solvethree.com/v1
api_keyワークスペースの非公開 API キー。
site有効なサイトプロファイルに設定されているホスト名。ページの完全な URL ではありません。
action対象へのリクエストで使用するreCAPTCHAアクション。
proxyHTTP または HTTPS プロキシの URL。パス、クエリ、フラグメントは含めません。
request_idこの論理タスクの識別子。ASCII の英字、数字、アンダースコア、ハイフンで構成される 1–64 文字です。
task_id作成レスポンスでタスク ID が返されるまで空にしておきます。

タスクを作成し、ID をコピーする

  1. 1.

    作成リクエストを設定する

    api_base の後に /tasks を付けて POST リクエストを作成します。クエリパラメーター waitMs を追加し、値を 0 にします。Bearer 認証を選び、トークンに api_key を指定します。リクエストでは Bearer スキームの Authorization ヘッダーを送信する必要があります。

  2. 2.

    JSON ボディを作成する

    site、action、proxy、requestId を含む JSON ボディを選択します。最初の 3 つには対応するローカル変数の値を、requestId には request_id の値を設定します。proxy または proxyCandidates のどちらか一方だけを送信してください。この手順では proxy を使います。type や url は追加しないでください。recaptchaType を省略すると、デフォルトの enterprise-v3 が選択されます。

  3. 3.

    送信してレスポンスを確認する

    成功したタスクのペイロードとして読み取る前に、HTTP レスポンスを確認してください。作成に成功したら、返されたタスク ID を task_id にコピーします。リクエストの復旧が必要になった場合に備え、タスクのボディと request_id を保持しておいてください。

  4. 4.

    そのタスクを取得する

    api_base の後に /tasks/ とコピーしたタスク ID を付けて GET リクエストを作成します。waitMs を 15000 に設定し、同じ Bearer キーを使い、ボディは空にします。ID は手動でコピーしてください。この手順ではレスポンスチェーン式を使いません。

Insomnia · 作成リクエストと取得リクエスト
Create task
  Method: POST
  URL: https://api.solvethree.com/v1/tasks?waitMs=0
  Auth: Bearer Token — your private workspace key
  Body: JSON — site, action, proxy and a stable requestId

Retrieve task
  Method: GET
  URL: https://api.solvethree.com/v1/tasks/PASTE_RETURNED_ID?waitMs=15000
  Auth: Bearer Token — the same workspace key
  Body: none

Keep the task's proxy in the JSON body. Insomnia's own network proxy setting
controls its API connection, not the proxy used to generate/submit the solution.

レスポンスに応じた処理を判断する

HTTP リクエストで成功以外のレスポンスが返された。

成功したタスクのペイロードを読み取ろうとする前に、HTTP エラーを確認してください。

試してみましょう: 報告されたリクエストまたは認証の問題を修正してください。無効な入力を変更せずに繰り返し送信したり、すべてのエラーをクレジット不足と判断したりしないでください。

タスクが pending または solving になっている。

どちらのステータスにも、使用可能な解決結果は含まれていません。

試してみましょう: 同じタスク ID で GET リクエストを再送信してください。このタスクがまだ完了していないという理由だけで、別のタスクを作成しないでください。

タスクが failed になっている。

errorCode と error を確認してください。タスクエラーの例として site-unreachable があります。

試してみましょう: そのタスクの取得を停止し、報告された原因に対処してから別のタスクを開始してください。解決に失敗した場合は返金されます。

作成リクエストが ID を返さずにタイムアウトした。

接続がタイムアウトしても、作成に失敗したとは限りません。

試してみましょう: 同じタスクボディを同じ requestId で再送信し、既存のタスクを復旧してください。その ID を再利用しながら入力を変更すると、競合が発生します。

ready の reCAPTCHA タスクにはトークンが含まれます。対象サイトに送信する場合は、解決時と同じプロキシを使い、返された userAgent と secChUa を使用してください。ready レスポンスは解決結果が生成されたことを示すもので、アプリケーションのリクエストが成功したことを示すものではありません。

最初のタスクを実行しましょう。

$5のワークスペースクレジットで始められます。

ワークスペースを作成
InsomniaでCAPTCHA APIをテストする · solvethree