C#コードから再キャプチャするために投稿しようとしています。
var data = new NameValueCollection
{
{ "privatekey", "my key" },
{ "remoteip ", "" },
{ "challenge ", model.recaptcha_challenge_field },
{ "response ", model.recaptcha_response_field }
};
using (var client = new WebClient())
{
var response = client.UploadValues("http://www.google.com/recaptcha/api/verify", data: data);
var result = ASCIIEncoding.ASCII.GetString(response);
}
私がこの結果を返すと
false invalid-request-cookie
リモート IP を設定する必要がありますか? 他に何が問題になる可能性がありますか?
アップデート
https://developers.google.com/recaptcha/docs/verifyは、エラーの意味を示しています:
ページ上の html の値は次のとおりです。
<INPUT id=recaptcha_challenge_field value=03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ type=hidden name=recaptcha_challenge_field />
ポストバックするオブジェクトでは、次のようになります。
“recaptcha_challenge_field=03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ&recaptcha_response_field=re
メル+たくさん」
サーバーで取得すると、値は
03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ
したがって、3 つの値をすべて並べると、次のようになります。
03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ
03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ
03AHJ_VusdI2SY_P2iM3VICgLmOw-7CE7F6zmOwvwfya4L8Jeiok_rCwVmHFJwJHxlelhp8By_QTA7SNF58fwijij5rxBLqgpoI3nuWy6S0HGL7U7lk_35aazPfaMyVwbeWuWJyxJ0DqjwDwrByD4AY70O0qlaTnCUxQ
ページの再キャプチャは、次の呼び出しによって生成されています。
Recaptcha.create("pub key",
"myDiv",
{
theme: "clean",
callback: Recaptcha.focus_response_field
}
);