Skip to main content
本文では、ユーザーが入力した内容と Recaptcha2 の CAPTCHA 画像を通じて、クリックする必要のある小さな画像の座標を返す Recaptcha2 画像認識 API の接続方法を紹介します。

申請プロセス

Recaptcha2 画像認識 API を使用するには、まず Ace Data Cloud コンソール にアクセスして API トークンを取得し、保管してください。 まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。完了後、現在のページに自動的に戻ります。 1つの API トークンでプラットフォームのすべてのサービスを呼び出すことができ、各サービスごとに個別に申請する必要はありません。 初回申請時には無料のクレジットが付与され、無料で体験できます。クレジットが不足した場合は、コンソール で一般残高をチャージできます。
📘 完全なドキュメント:Recaptcha2 画像認識 API →

基本的な使用法

まず、基本的な使用方法を理解する必要があります。ウェブサイトから Recaptcha2 CAPTCHA 画像をキャプチャする必要があります。ここでは、サンプルウェブサイトの URL は https://www.google.com/recaptcha/api2/demo です。具体的なページは以下の図の通りです:

CAPTCHA 画像が表示されるには、まず CAPTCHA のチェックボックスをクリックする必要があります。上の図で黄色の矢印が指している部分には、下文の question の値となるテキストが含まれています。まず、image フィールドを簡単に渡す必要があります。これは具体的な Recaptcha2 CAPTCHA 画像であり、上の図で赤い矢印が指している画像です。また、画像は標準サイズ (100x100, 300x300, 450x450) にリサイズする必要があります。これにより、サービスが画像のタイプを判断できるようになります。画像の圧縮は自分で行う必要があります。この記事では、圧縮サイト を推奨します。このサイトで画像のサイズと容量を圧縮できます。圧縮後の結果は以下の図の通りです: また、CAPTCHA 画像に関連する認識内容パラメータ question を入力する必要があります。以下の内容表を参考にしてください:

中国語内容表

英語内容表

上記の内容から、パラメータ question を消防栓に対応する /m/01pns0 に設定することがわかります。具体的な内容は以下の通りです:

ここでは、リクエストヘッダーを設定しました。含まれる内容は以下の通りです:
  • accept:受け取りたいレスポンスの形式。ここでは application/json と記入し、JSON 形式を指定します。
  • authorization:API を呼び出すためのキー。申請後、直接ドロップダウンから選択できます。
さらに、リクエストボディを設定しました。含まれる内容は以下の通りです:
  • image:Base64 エンコードされた CAPTCHA 画像。
  • question:問題 ID、表を参照してください。/m/ で始まります。
選択後、右側に対応するコードが生成されるのがわかります。以下の図の通りです:

「Try」ボタンをクリックするとテストが実行され、上の図の通り、以下の結果が得られました:
返された結果には複数のフィールドがあり、以下のように説明されます:
  • solution、今回の Recaptcha2 CAPTCHA 画像タスク処理後の検証結果。
    • size、Recaptcha2 CAPTCHA 画像のサイズ。
    • label、Recaptcha2 CAPTCHA 画像が認識した内容。
    • confidences、Recaptcha2 CAPTCHA 画像認識領域の信頼度。領域は0から始まります。
    • objects、Recaptcha2 CAPTCHA 画像認識後に認識内容を満たす領域。領域は0から始まります。
    • type、今回の Recaptcha2 CAPTCHA 画像タスクのタイプ。複数の領域がある場合は multi です。
  • started_atfinished_at:今回のリクエストの処理開始と結果生成の時間、Unix タイムスタンプ(秒、浮動小数点)。
  • elapsed:今回の処理にかかった総時間(秒)。
Recaptcha2 CAPTCHA 画像の検証結果が得られたことがわかります。まず、CAPTCHA 画像を領域に分割します。以下の図の通りです:

領域はすべて0から始まっており、結果の objects から2,5,7を得ました。これらの3つの領域をクリックすることで、検証を通過できます。 また、対応する接続コードを生成したい場合は、生成されたコードを直接コピーできます。例えば、CURL のコードは以下の通りです:
Python の対接コードは以下の通りです:

非同期モード(async)

デフォルトでは API は同期ブロッキングです:1回のリクエストは、認識結果の処理が完了するまで待機します。もし複数の打码器のローテーションを行っていて、「タスクを提出した後、すぐに task_id を取得し、他の打码器を調整し、後で結果を読み取る」ことを希望する場合は、リクエストボディに async: true を渡すことができます。 async: true を渡すと、インターフェースはすぐに task_id を返し、ブロックして待機しません:
進捗を確認するには、この task_id を使用して POST /captcha/tasks を照会できます(3〜5秒ごとを推奨)。このインターフェースはタスク処理をトリガーしたり進めたりしません;照会しなくても、ネットワークが切断されても、クライアントを終了しても、サーバーは処理を続けます:
処理中は status: processing が返されます:
処理が完了すると status: ready と認識結果 solution が返されます(フィールド構造は同期モードと完全に一致します):
課金説明:非同期モードでは、タスクの作成と「処理中」状態の読み取りは課金されません;クライアントが初めて成功した結果を読み取るときに1回課金されます(既存の動作および同期モードの価格と一致)。サーバーは自動的にタスクを進めますが、バックグラウンドで先に完了しても早期に課金されることはありません。タスクが120秒以内に成功しない場合は、HTTP 504 timeout で終了し、課金されません。/captcha/tasks はタスクを進める責任はありません。

エラーハンドリング

API を呼び出す際にエラーが発生した場合、API は対応するエラーコードとメッセージを返します。例えば:
  • 400 token_mismatched:不正なリクエスト、パラメータが欠落または無効な可能性があります。
  • 400 api_not_implemented:不正なリクエスト、パラメータが欠落または無効な可能性があります。
  • 401 invalid_token:未承認、無効または欠落した認証トークン。
  • 429 too_many_requests:リクエストが多すぎます、レート制限を超えました。
  • 500 api_error:内部サーバーエラー、サーバーで何かがうまくいきませんでした。

エラー応答の例

結論

この文書を通じて、Recaptcha2 画像認識 API を使用してユーザーが認識する内容と Recaptcha2 CAPTCHA 画像を入力し、最終的にクリックする必要のある小さな画像の座標を返す方法を理解しました。この文書が、API の接続と使用をより良くする手助けとなることを願っています。何か問題があれば、いつでも技術サポートチームにお問い合わせください。