InsomniaでCAPTCHA APIをテストする
JSON本文を使ってタスクを作成し、返されたタスクIDをコピーして、ステータスが ready または failed になるまでそのタスクを取得します。このテストにレスポンスチェーンは不要です。
このページの内容
ローカル設定を準備する
ワークスペースの API キー、対象サイトの有効なプロファイル、プロキシが必要です。タスクを送信する前にサイトプロファイルを設定してください。ホスト名とアクションを指定しても、プロファイルは作成されません。
solvethree-local という名前の非公開のローカル環境を作成し、以下の変数を設定してください。これらはこの手順用に選んだ名前であり、追加の API フィールドではありません。API キーとプロキシの認証情報を共有設定に含めないでください。
| 名前 | 値 |
|---|---|
api_base | https://api.solvethree.com/v1 |
api_key | ワークスペースの非公開 API キー。 |
site | 有効なサイトプロファイルに設定されているホスト名。ページの完全な URL ではありません。 |
action | 対象へのリクエストで使用するreCAPTCHAアクション。 |
proxy | HTTP または HTTPS プロキシの URL。パス、クエリ、フラグメントは含めません。 |
request_id | この論理タスクの識別子。ASCII の英字、数字、アンダースコア、ハイフンで構成される 1–64 文字です。 |
task_id | 作成レスポンスでタスク ID が返されるまで空にしておきます。 |
タスクを作成し、ID をコピーする
- 1.
作成リクエストを設定する
api_baseの後に/tasksを付けて POST リクエストを作成します。クエリパラメーターwaitMsを追加し、値を0にします。Bearer 認証を選び、トークンにapi_keyを指定します。リクエストでは Bearer スキームのAuthorizationヘッダーを送信する必要があります。 - 2.
JSON ボディを作成する
site、action、proxy、requestIdを含む JSON ボディを選択します。最初の 3 つには対応するローカル変数の値を、requestIdにはrequest_idの値を設定します。proxyまたはproxyCandidatesのどちらか一方だけを送信してください。この手順ではproxyを使います。typeやurlは追加しないでください。recaptchaTypeを省略すると、デフォルトのenterprise-v3が選択されます。 - 3.
送信してレスポンスを確認する
成功したタスクのペイロードとして読み取る前に、HTTP レスポンスを確認してください。作成に成功したら、返されたタスク ID を
task_idにコピーします。リクエストの復旧が必要になった場合に備え、タスクのボディとrequest_idを保持しておいてください。 - 4.
そのタスクを取得する
api_baseの後に/tasks/とコピーしたタスク ID を付けて GET リクエストを作成します。waitMsを15000に設定し、同じ Bearer キーを使い、ボディは空にします。ID は手動でコピーしてください。この手順ではレスポンスチェーン式を使いません。
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 レスポンスは解決結果が生成されたことを示すもので、アプリケーションのリクエストが成功したことを示すものではありません。
参照元とAPIリファレンス
最初のタスクを実行しましょう。
$5のワークスペースクレジットで始められます。