Make'te CAPTCHA görev API'sini kullanın
Görevi Make'in HTTP modülüyle bir kez oluşturun, kimliğini kaydedin ve ayrı bir GET isteğiyle kontrol edin. ready, failed ve tamamlanmamış görevleri ayrı ayrı yönlendirin. Bu, yerel bir solvethree uygulaması veya webhook değil, elle yapılandırılan bir HTTP entegrasyonudur.
Bu sayfada
Oluşturma isteğini yapılandırın
Önce çalışma alanınızda hedef ana makine adı için etkin bir profil ayarlayın. site ve action göndermek profil oluşturmaz. Hedef henüz yapılandırılmadıysa site profili kurulumuna bakın.
- 1.
HTTP v4 kimlik doğrulamasını yapılandırın
Kimlik doğrulama türü olarak
API keyseçin ve bir kimlik bilgileri anahtarlığı oluşturun. Anahtar değeriniBearer, ardından bir boşluk ve çalışma alanı API anahtarınız olacak şekilde; yerleşimiIn the header, parametre adını iseAuthorizationolarak ayarlayın. İzin verilen hizmet kaynaklarınıhttps://api.solvethree.comile sınırlandırın. Anahtarı senaryo verileri üzerinden aktarmak yerine anahtarlıkta tutun. - 2.
İstek ayarlarını girin
Aşağıda gösterilen yöntemi, URL'yi, sorgu parametresini, başlığı ve JSON gövdesini kullanın. Her birini modüldeki ilgili alana girin. JSON istek içeriğine yalnızca
bodyiçeriği girilmelidir; örneğin tamamı açıklayıcı bir yapılandırmadır, içe aktarılabilir bir Make şablonu değildir.
{
"method": "POST",
"url": "https://api.solvethree.com/v1/tasks",
"query": {
"waitMs": "0"
},
"headers": {
"Content-Type": "application/json"
},
"body": {
"site": "accounts.example.com",
"action": "login",
"proxy": "http://USER:PASSWORD@PROXY:PORT",
"requestId": "one-stable-id-for-this-logical-job"
},
"authentication": {
"type": "API key",
"Key": "Bearer YOUR_PRIVATE_WORKSPACE_KEY",
"API key placement": "In the header",
"API key parameter name": "Authorization",
"Allowed service origins": [
"https://api.solvethree.com"
]
}
}sitedeğerini tam bir URL ile değil, yapılandırılmış ana makine adıyla değiştirin.actiondeğerini hedef akışın kullandığı eylem olarak ayarlayın.proxydeğerini proxy URL'nizle değiştirin. İstek,proxyveyaproxyCandidatesalanlarından tam olarak birini gerektirir; örnekte tek bir proxy kullanılır.- Her yeni mantıksal işe kendi
requestIddeğerini verin ve kurtarma için saklayın. Örnek değer bir yer tutucudur; ilgisiz işlerde yeniden kullanılacak bir kimlik değildir. - Bu reCAPTCHA isteğine
typeveyaurleklemeyin.recaptchaTypebelirtilmediğinde varsayılan olarakenterprise-v3kullanılır.
Görev kimliğini kaydedin ve GET isteğini yapılandırın
Başarılı bir oluşturma yanıtından sonra, başka bir işlem yapmadan önce döndürülen görev kimliğini mantıksal işle ilişkilendirerek kaydedin. Bu görevi almak için ayrı bir HTTP istek modülü ekleyin.
| Ayar | Değer |
|---|---|
| Yöntem | GET |
| URL | https://api.solvethree.com/v1/tasks/:id; :id yerine kayıtlı görev kimliğini yazın |
| Kimlik doğrulama | API anahtarı; oluşturma isteğinin kimlik bilgileri anahtarlığını yeniden kullanın |
| İstek gövdesi | Yok |
Görev durumuna göre yönlendirmeden önce başarısız HTTP yanıtlarını işleyin. HTTP hatası, durumu failed olan bir görevle aynı şey değildir; okunamayan veya başarısız bir yanıtı başka bir pending sonucu olarak değerlendirmeyin.
Döndürülen görev durumuna göre yönlendirin
GET başarılı olduktan sonra, döndürülen status alanında açık filtreler kullanan bir yönlendirici ekleyin. Her başarılı HTTP yanıtını çözüm yoluna göndermeyin.
| Filtre | Eylem |
|---|---|
status, ready değerine eşit | Çözümü gönderimi yapan istemciye aktarın ve bu görevin durum sorgulama yolunu kapatın. |
status, failed değerine eşit | errorCode ve error alanlarını kaydedin, ardından bu görevin durumunu sorgulamayı bırakın. Başarısız çözümlerin ücreti iade edilir. |
status, pending değerine eşit VEYA status, solving değerine eşit | Kayıtlı görev kimliğini saklayın ve bu durum sorgulama çalıştırmasını sonlandırın. Daha sonraki bir çalıştırmada GET ile devam edin. |
Tamamlanmamış görev filtresini tüm durumları kapsayan bir filtreye dönüştürmek yerine açıkça tanımlayın. Eksik veya beklenmeyen bir durum, sessizce sonsuza kadar sorgulanmak yerine incelenmelidir. Başarısızlık yolunda, başka bir görev oluşturmadan önce bildirilen hatayı araştırın; değiştirilmemiş geçersiz girdiler yeniden denemelerle düzelmez.
POST'u tekrarlamak yerine kayıtlı kimlikle devam edin
Basit ve sınırlandırılmış bir tasarım, her durum sorgulama çalıştırmasında bir GET gerçekleştirir. Tamamlanmamış işi bir sonraki çalıştırmanın okuyabileceği bir yere kaydedin; yalnızca mevcut yürütmede bulunan bir görev kimliğine güvenmeyin.
- 1.
Giriş yolunu seçin
İşin zaten bir görev kimliği varsa doğrudan GET'e geçin. Oluşturma yoluna yalnızca mevcut bir görevi olmayan yeni bir iş girmelidir.
- 2.
Tamamlanmamış çalıştırmaları sonlandırın
pendingveyasolvingiçin görev kimliğini saklayın ve çalıştırmayı sonlandırın. Devam ederken aynı kimliği alın. Sonraki durum sorgulama çalıştırmalarının sonuçları tekrar işlememesi için son duruma ulaşan görevleri kapalı olarak işaretleyin. - 3.
Tüm tekrarlayıcıları sınırlandırın
Bunun yerine bir tekrarlayıcı eklerseniz sonlu bir üst sınır belirleyin ve kayıtlı kimlik için yalnızca GET'i tekrarlayın.
readyveyafailedsonrasında başka durum sorgulamalarını veya sonuç işlemeyi engelleyin. Tekrar sınırına ulaşmak, durup kimliği saklamak anlamına gelir; yerine yeni bir görev oluşturmak değil.
Hazır sonucu proxy destekleyen bir istemciye aktarın
Bu reCAPTCHA isteğinde gönderilecek değer görev kimliği değil, solution.token değeridir. Amaçlanan hedefe gönderirken döndürülen userAgent ve secChUa tarayıcı kimliğini başarılı proxy ile birlikte kullanın.
Make'in HTTP modülünün son istek için çözücünün müşteri proxy'sini kullanabileceğini varsaymayın. Hazır sonucu, gerekli proxy'yi ve tarayıcı kimliğini destekleyen bir istemciye aktarın. ready, çözümün üretildiği anlamına gelir; kabul edilip edilmediğini hedefin sonraki gönderime verdiği yanıt belirler.
Kaynaklar ve API referansı
İlk görevinizi çalıştırın.
$5 çalışma alanı kredisiyle başlayın.