| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| type | String | 是 | TurnstileTaskProxyless |
| websiteURL | String | 是 | 加载 Turnstile 组件的目标页面完整 URL |
| websiteKey | String | 是 | Turnstile 站点密钥,可在 Turnstile 组件元素的 data-sitekey 属性中找到 |
| action | String | 否 | Turnstile Challenge 页面的 action 参数值,来自 turnstile.render 调用选项 |
| data | String | 否 | Turnstile Challenge 页面所需的 cData 参数值 |
| pagedata | String | 否 | Turnstile Challenge 页面所需的 chlPageData 参数值 |
API 端点: https://api.nextcaptcha.com/createTask
方法: POST
内容类型: application/json
{
"clientKey":"api key",
"task": {
"type":"TurnstileTaskProxyless",
"websiteURL":"https://example.com",
"websiteKey":"0x4XXXXXXXXXXXXXXXXX"
}
}{
"errorId": 0,
"status": "ready",
"solution": {
"token": "0.erxoMnovo7sGfKRqH1F2wME..."
},
"createTime": 1701234567890,
"endTime": 1701234567890
}# https://github.com/nextcaptcha/nextcaptcha-python
import os
import sys
from nextcaptcha import NextCaptchaAPI
client_key = os.getenv('NEXTCAPTCHA_KEY', "YOUR_CLIENT_KEY")
api = NextCaptchaAPI(client_key=client_key)
try:
result = api.turnstile(website_url="https://example.com", website_key="0x4XXXXXXXXXXXXXXXXX")
except Exception as e:
sys.exit(e)
else:
sys.exit('solved: ' + str(result))// https://github.com/nextcaptcha/nextcaptcha-go
package main
import (
"fmt"
"log"
"github.com/nextcaptcha/nextcaptcha-go"
)
func main() {
client := nextcaptcha.NewNextCaptchaAPI("API_KEY")
result, err := client.Turnstile("https://example.com", "0x4XXXXXXXXXXXXXXXXX", nextcaptcha.TurnstileOptions{})
if err != nil {
log.Fatal(err);
}
fmt.Println("result "+result)
}// https://github.com/nextcaptcha/nextcaptcha-csharp
string clientKey = "YOUR_CLIENT_KEY";
string softId = ""; // Optional
string callbackUrl = ""; // Optional
bool openLog = true; // Optional
var nextCaptchaAPI = new NextCaptchaAPI(clientKey, softId, callbackUrl, openLog);
string websiteUrl = "https://example.com";
string websiteKey = "0x4XXXXXXXXXXXXXXXXX";
var result = await nextCaptchaAPI.SolveTurnstileAsync(websiteUrl, websiteKey);