ข้ามไปยังเนื้อหา
สถานะแดชบอร์ด

ประเภทงาน

Cloudflare Turnstile

หน้านี้แปลด้วยเครื่องจากเวอร์ชันภาษาจีน อาจมีข้อผิดพลาด โปรดยึดเวอร์ชันภาษาจีนเป็นหลัก

ภาพประกอบTurnstile อยู่ภายในฟอร์ม โดยส่วนใหญ่จะยืนยันเองและแสดงเครื่องหมายถูก หน้าเว็บจะไม่เปลี่ยนไปหน้าอื่น

งาน Cloudflare Turnstile จะคืนค่า token (token) ให้นำไปส่งให้เว็บไซต์เป้าหมายเพื่อผ่านการตรวจสอบ TurnstileTaskProxyless ราคางานละ 25 พอยต์ (≈ $3.75 / 1k) ทำงานแบบอะซิงโครนัส: เรียก createTask ก่อน แล้วเรียก getTaskResult ทุก 5 วินาที หากจดจำไม่สำเร็จหรือหมดเวลา ระบบจะคืนพอยต์ให้อัตโนมัติ

POSThttps://api.yescaptcha.com/createTaskendpoint ทั่วโลก
POSThttps://cn.yescaptcha.com/createTaskendpoint จีน

เนื้อหาคำขอเป็น JSON และยืนยันตัวตนด้วย clientKey สร้างงานที่ endpoint ใด ให้ตรวจสอบผลลัพธ์ที่ endpoint เดียวกัน

ในฟอร์มของหน้าเว็บมีกล่องยืนยันของ Cloudflare ฝังอยู่ (“ยืนยันว่าคุณเป็นมนุษย์”) และหน้าเว็บโหลดสคริปต์จาก challenges.cloudflare.com/turnstile

หากทั้งหน้าถูก Cloudflare ขวางไว้และแสดงข้อความ “โปรดรอสักครู่…” หรือ “กำลังตรวจสอบเบราว์เซอร์ของคุณ” นั่นคือหน้าตรวจสอบของ Cloudflare ไม่ใช่ Turnstile ให้ใช้ หน้าตรวจสอบของ Cloudflare ดูความแตกต่างได้ที่ วิธีระบุประเภท CAPTCHA

ประเภทงานราคารูปแบบการคืนผลลัพธ์หมายเหตุ
TurnstileTaskProxyless$3.75 / 1k; 25 พอยต์/งาน · ¥25 / 1kแบบอะซิงโครนัส
TurnstileTaskProxylessM1$4.50 / 1k; 30 พอยต์/งาน · ¥30 / 1kแบบอะซิงโครนัส
TurnstileTask$3.75 / 1k; 25 พอยต์/งาน · ¥25 / 1kแบบอะซิงโครนัสใช้พร็อกซีของคุณเอง

ราคาเป็นดอลลาร์สหรัฐเป็นเพียงค่าประมาณที่ US$1 ≈ ¥6.67 งานจะถูกหักเป็นพอยต์

  • TurnstileTaskProxyless และ TurnstileTaskProxylessM1 ใช้พารามิเตอร์เหมือนกันแต่ใช้คนละเส้นทาง จึงใช้สำรองแทนกันได้
  • TurnstileTask ใช้พร็อกซีของคุณเองในการโหลด CAPTCHA ต้องส่งฟิลด์ของพร็อกซีด้วย
ฟิลด์ประเภทจำเป็นคำอธิบาย
typestringใช่ประเภทงาน ดูค่าที่ใช้ได้ในหัวข้อ "ประเภทงานและราคา" ของหน้านี้
websiteURLstringใช่URL แบบเต็มของหน้าเว็บที่แสดง CAPTCHA ให้ระบุเว็บไซต์ที่คุณเห็น CAPTCHA ไม่ใช่โดเมนของผู้ให้บริการ CAPTCHA
websiteKeystringใช่คีย์ของเว็บไซต์ (sitekey) สำหรับ Turnstile โดยทั่วไปขึ้นต้นด้วย 0x
pageActionstringไม่ค่า action ที่หน้าเว็บส่งให้ Turnstile (พารามิเตอร์ของ turnstile.render หรือ data-action บนองค์ประกอบของวิดเจ็ต) เช่น login ส่วนใหญ่ไม่จำเป็นต้องส่ง ให้เพิ่มเฉพาะเมื่องานล้มเหลวต่อเนื่อง
datastringไม่ค่า cData ที่หน้าเว็บส่งให้ Turnstile (พารามิเตอร์ของ turnstile.render หรือ data-cdata บนองค์ประกอบของวิดเจ็ต) เช่น c0bd4b36-7419-4e18-83c6-378699f2a9a2 ส่วนใหญ่ไม่จำเป็นต้องส่ง ให้เพิ่มเฉพาะเมื่องานล้มเหลวต่อเนื่อง
proxyTypestringบางประเภทโปรโตคอลของพร็อกซี: http, https, socks4 หรือ socks5 (จำเป็นสำหรับ TurnstileTask)
proxyAddressstringบางประเภทIP แอดเดรสหรือชื่อโฮสต์ของพร็อกซี ไม่สามารถใช้แอดเดรสภายในเครื่องหรือภายในเครือข่าย เช่น 127.0.0.1 หรือ 192.168.x.x ได้ เพราะเซิร์ฟเวอร์ของเราเข้าถึงไม่ได้ (จำเป็นสำหรับ TurnstileTask)
proxyPortintegerบางประเภทพอร์ตของพร็อกซี (จำเป็นสำหรับ TurnstileTask)
proxyLoginstringไม่ชื่อผู้ใช้ของพร็อกซี (เมื่อพร็อกซีต้องมีการยืนยันตัวตน) (เฉพาะ TurnstileTask)
proxyPasswordstringไม่รหัสผ่านของพร็อกซี (เมื่อพร็อกซีต้องมีการยืนยันตัวตน) (เฉพาะ TurnstileTask)
userAgentstringไม่User-Agent ของเบราว์เซอร์ หากผลลัพธ์มี userAgent ให้ใช้ค่านั้นเมื่อส่ง token (เฉพาะ TurnstileTask)

websiteKey มักขึ้นต้นด้วย 0x วิธีค้นหาดูได้ที่ ค้นหาพารามิเตอร์ของ Turnstile

ในกรณีส่วนใหญ่ส่งเพียง websiteURL และ websiteKey ก็เพียงพอ ไม่จำเป็นต้องใช้พารามิเตอร์สองตัวนี้ หากแน่ใจว่า websiteURL และ websiteKey ถูกต้องแล้วแต่งานยังไม่ผ่าน ให้ตรวจสอบว่าหน้าเว็บส่ง action และ cData ตอนเรียก Turnstile หรือไม่ (พารามิเตอร์ของ turnstile.render หรือ data-action และ data-cdata บนองค์ประกอบของกล่องยืนยัน) หากมี ให้ส่งตามค่าเดิม:

  • pageAction: ใส่ค่า action ในหน้าเว็บ เช่น login
  • data: ใส่ค่า cData ในหน้าเว็บ เช่น c0bd4b36-7419-4e18-83c6-378699f2a9a2
POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY",
"pageAction": "login",
"data": "c0bd4b36-7419-4e18-83c6-378699f2a9a2"
}
}
POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY"
}
}
curl -s https://api.yescaptcha.com/createTask \
-H 'Content-Type: application/json' \
-d '{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY"
}
}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:
curl -s https://api.yescaptcha.com/getTaskResult \
-H 'Content-Type: application/json' \
-d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'

เปลี่ยน websiteURL และ websiteKey เป็นค่าของเว็บไซต์เป้าหมาย

{
"errorId": 0,
"status": "ready",
"solution": {
"token": "0.ufq5RgSVZd11DPSX1brdrxnEs28KcVlKj2ORchqxSy2q9yAW6ciq3hriXDF4x...",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"
}
}
ฟิลด์ประเภทคำอธิบาย
tokenstringtoken ที่ได้ ใช้ส่งให้เว็บไซต์เป้าหมาย ใช้ได้ครั้งเดียว แนะนำให้ส่งโดยเร็วที่สุด
userAgentstringUser-Agent ที่ใช้ในการสร้าง token ให้ใช้ค่านี้เมื่อส่ง token แม้จะต่างจากค่าที่คุณส่งมา

นำ token ไปใส่ในฟิลด์ cf-turnstile-response ของหน้าเว็บ (หรือฟิลด์ที่ API ของเว็บไซต์เป้าหมายกำหนด) แล้วส่ง โดยใช้ userAgent ที่ได้รับกลับมาเป็น User-Agent ของคำขอที่ส่ง

ระหว่างประมวลผลจะคืนค่า {"errorId": 0, "status": "processing"} ให้ตรวจสอบอีกครั้งหลังผ่านไป 5 วินาที หากเกิดข้อผิดพลาด ให้จัดการตาม errorCode ดู รหัสข้อผิดพลาด

ใช้ได้ครั้งเดียว แนะนำให้ส่งโดยเร็วที่สุดหลังได้รับ (token ของ Turnstile มักหมดอายุภายในไม่กี่นาที โดย Cloudflare เป็นผู้กำหนด)

ตรวจสอบว่า websiteURL เป็นหน้าที่มีกล่องยืนยัน และ websiteKey ถูกต้อง และใช้ userAgent ที่ได้รับกลับมาตอนส่ง หากหน้าเว็บส่ง action และ cData ให้ใส่เป็น pageAction และ data ดู เมื่อยังไม่ผ่านแน่ ๆ ด้านบน หากเว็บไซต์ตรวจสอบ IP ด้วย ให้ใช้ TurnstileTask และส่งผ่านพร็อกซีเดียวกัน