# reCAPTCHA パラメータの調べ方

> reCAPTCHA の websiteKey（sitekey）、websiteURL、v3 の pageAction、コールバック関数を、開発者ツールの Network・Sources・Console で調べる方法です。自動検出スクリプト付き。

Source: https://docs.yescaptcha.com/ja/guides/find-recaptcha-parameters/ · Last verified: 2026-10-15

> This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/guides/find-recaptcha-parameters/

reCAPTCHA のタスクを作成するには、`websiteURL`（キャプチャが表示されるページの URL）と `websiteKey`（サイトキー）が必要です。v3 ではさらに `pageAction` が必要です。Selenium などでブラウザを操作して送信する場合は、コールバック関数も必要になります。これらはすべてブラウザの開発者ツール（F12）で確認できます。

## 最も簡単な方法：自動検出スクリプト

キャプチャが表示されているページを開き、F12 でコンソール（Console）を開いて、次のスクリプトを貼り付けて実行します。

find-recaptcha-clients.js

```js
// Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients().
// Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function.
function findRecaptchaClients() {
  if (typeof ___grecaptcha_cfg === 'undefined') return [];
  return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
    const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
    const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object');
    objects.forEach(([toplevelKey, toplevel]) => {
      const found = Object.entries(toplevel).find(
        ([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value,
      );
      if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI;
      if (found) {
        const [sublevelKey, sublevel] = found;
        data.sitekey = sublevel.sitekey;
        const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
        const callback = sublevel[callbackKey];
        if (!callback) {
          data.callback = null;
          data.function = null;
        } else {
          data.function = callback;
          const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
          data.callback = `___grecaptcha_cfg.clients${keys}`;
        }
      }
    });
    return data;
  });
}

findRecaptchaClients();
```

結果の `sitekey` が `websiteKey`、`pageurl` が `websiteURL` です。`version` は v2 か v3 かを示し、`function` と `callback` がコールバック関数です。

```json
[
  {
    "id": "0",
    "version": "V2",
    "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "function": "onSuccess",
    "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
    "pageurl": "https://www.google.com/recaptcha/api2/demo"
  }
]
```

空の配列が返る場合は、ページで reCAPTCHA がまだ読み込まれていません。キャプチャが表示されてから再度実行してください。

## websiteKey と websiteURL

Network パネルで `anchor` を検索し、次のようなリクエストを探します。

```text
https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9&co=...&hl=en&size=normal
```

-   `k=` の後ろの値が `websiteKey` です。
-   `websiteURL` には、キャプチャが表示されているページの完全な URL を指定します（このリクエストの `Referer` が通常それに当たります）。

ページのソースで `data-sitekey` を検索しても見つかります。

## pageAction（v3）

`pageAction` は、ページが `grecaptcha.execute(サイトキー, {action: '...'})` を呼ぶ際に渡す `action` のことで、ページ側と一致させる必要があります。

**方法 1：ソースを検索する。** 開発者ツールの Sources パネルで右クリックし、「Search in all files」を選びます。通常の v3 は `.execute(`、Enterprise 版 v3 は `.enterprise.execute` を検索し、続く `action` を確認します。

```js
grecaptcha.ready(function () {
  grecaptcha.execute('6LdpS-gUAAAAAL3Qr2yP7rkrQjkKBVvEY_48JS5l', { action: 'login' }).then(function (token) {
    // ...
  });
});
```

この例では `pageAction` は `login` です。

**方法 2：ブレークポイントを使う。** コードが難読化されていて検索で見つからない場合は、コンソールで `debug(grecaptcha.execute)`（Enterprise 版は `debug(grecaptcha.enterprise.execute)`）を実行し、ページ上で検証が発生する操作（ログインのクリックなど）を行います。ブレークポイントで停止したら、右側の Scope で `action` の値を確認します。

サイトによっては、ステップごとに異なる `action` を使います（例：登録時に `signup/submit_email` の後に `signup/success`）。通過したいステップの値を使用してください。F8 キーで実行を再開すると、次の `action` を確認できます。

## コールバック関数

Selenium などでブラウザ上のページに token を入力する場合、入力後にページのコールバック関数を呼び出して、検証が完了したことをページに伝えます。

-   Elements パネルで `data-callback` を検索します。その値がコールバック関数名です（例：`data-callback="onSuccess"`）。
-   または `grecaptcha.render` を検索し、引数の `callback` を確認します。
-   または、コンソールで `___grecaptcha_cfg.clients` を確認するか、上記の自動検出スクリプトを使います。

呼び出し方：

```python
driver.execute_script("onSuccess(arguments[0])", g_recaptcha_response)
```

コールバック関数のないページもあります。その場合は、token を `g-recaptcha-response` のテキストボックスに入力して、そのままフォームを送信してください。全体の流れは [token で reCAPTCHA を通過する](https://docs.yescaptcha.com/ja/guides/submit-recaptcha-token.md) を参照してください。
