Use a API de tarefas de CAPTCHA no Make
Crie a tarefa uma única vez com o módulo HTTP do Make, salve seu ID e consulte-a com uma requisição GET separada. Encaminhe separadamente as tarefas com status ready, failed e as inacabadas. Esta é uma integração HTTP manual, não um aplicativo nativo solvethree nem um webhook.
Nesta página
Configure a requisição de criação
Primeiro, configure um perfil ativo para o hostname de destino no seu workspace. Enviar site e action não cria um perfil. Consulte a configuração do perfil do site se o destino ainda não estiver configurado.
- 1.
Configure a autenticação do HTTP v4
Escolha o tipo de autenticação
API keye crie um chaveiro de credenciais. Defina a chave comoBearerseguido de um espaço e da chave de API do seu workspace, o posicionamento comoIn the headere o nome do parâmetro comoAuthorization. Restrinja as origens de serviço permitidas ahttps://api.solvethree.com. Mantenha a chave no chaveiro em vez de passá-la pelos dados do cenário. - 2.
Insira as configurações da requisição
Use o método, a URL, o parâmetro de consulta, o cabeçalho e o corpo JSON mostrados abaixo. Insira cada um no campo correspondente do módulo. Apenas o conteúdo de
bodydeve ser usado como conteúdo JSON da requisição; o exemplo completo é uma configuração explicativa, não um blueprint importável do Make.
{
"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"
]
}
}- Substitua
sitepelo hostname configurado, não por uma URL completa. Definaactioncomo a ação usada pelo fluxo de destino. - Substitua
proxypela URL do seu proxy. A requisição exige exatamente um dos campos:proxyouproxyCandidates; o exemplo usa um único proxy. - Atribua a cada novo trabalho lógico seu próprio
requestIde guarde-o para recuperação. O valor do exemplo é ilustrativo, não um ID para reutilizar em trabalhos não relacionados. - Não adicione
typenemurla esta requisição reCAPTCHA. QuandorecaptchaTypeé omitido, o padrão éenterprise-v3.
Salve o ID da tarefa e configure o GET
Após uma resposta de criação bem-sucedida, salve o ID da tarefa retornado associado ao trabalho lógico antes de continuar. Adicione um módulo de requisição HTTP separado para consultar essa tarefa.
| Configuração | Valor |
|---|---|
| Método | GET |
| URL | https://api.solvethree.com/v1/tasks/:id, substituindo :id pelo ID da tarefa salvo |
| Autenticação | Chave de API; reutilize o chaveiro de credenciais da requisição de criação |
| Corpo da requisição | Nenhum |
Trate as respostas HTTP sem sucesso antes de encaminhar pelo status da tarefa. Um erro HTTP não é o mesmo que uma tarefa com status failed; não trate uma resposta ilegível ou sem sucesso como mais um resultado pending.
Encaminhe pelo status retornado da tarefa
Após o GET ser bem-sucedido, adicione um roteador com filtros explícitos para o status retornado. Não encaminhe toda resposta HTTP bem-sucedida pela rota da solução.
| Filtro | Ação |
|---|---|
status é igual a ready | Passe a solução ao cliente que fará o envio e encerre o fluxo de consulta periódica desta tarefa. |
status é igual a failed | Registre errorCode e error e pare de consultar esta tarefa. Resoluções com falha são reembolsadas. |
status é igual a pending OU status é igual a solving | Mantenha o ID da tarefa salvo e encerre esta execução de consulta. Retome com GET em uma execução posterior. |
Mantenha explícito o filtro de tarefas inacabadas em vez de torná-lo uma rota genérica. Um status ausente ou inesperado deve ser inspecionado, não consultado indefinidamente sem aviso. Na rota de falha, investigue o erro informado antes de criar outra tarefa; repetir os mesmos dados inválidos não resolverá o problema.
Retome o ID salvo em vez de repetir o POST
Um fluxo simples e limitado executa um GET por execução de consulta. Salve o trabalho inacabado em um local que a próxima execução possa ler; não dependa de um ID de tarefa que só existe na execução atual.
- 1.
Escolha o fluxo de entrada
Se o trabalho já tiver um ID de tarefa, vá diretamente para GET. Apenas um novo trabalho sem tarefa existente deve entrar no fluxo de criação.
- 2.
Encerre execuções inacabadas
Para
pendingousolving, guarde o ID da tarefa e encerre a execução. Ao retomar, consulte esse mesmo ID. Marque as tarefas em estado final como encerradas para que execuções posteriores de consulta não processem seus resultados novamente. - 3.
Limite qualquer repetidor
Se, em vez disso, você adicionar um repetidor, defina um número máximo finito de repetições e repita apenas o GET para o ID salvo. Impeça novas consultas ou o processamento do resultado após
readyoufailed. Atingir o limite de repetições significa parar e guardar o ID, não criar uma tarefa substituta.
Entregue o resultado pronto a um cliente com suporte a proxy
Para esta requisição reCAPTCHA, o valor a enviar é solution.token, não o ID da tarefa. Use a identidade de navegador retornada em userAgent e secChUa com o proxy usado na resolução bem-sucedida ao enviar ao destino pretendido.
Não suponha que o módulo HTTP do Make possa usar o proxy do cliente utilizado na resolução para essa requisição final. Entregue o resultado pronto a um cliente que ofereça suporte ao proxy e à identidade de navegador exigidos. ready significa que a solução foi gerada; a aceitação é determinada pela resposta do destino ao envio subsequente.
Fontes e referência da API
Execute sua primeira tarefa.
Comece com $5 em créditos no espaço de trabalho.