--- tags: [skymilhas, tap, miles-go, status] created: 2026-04-14 --- # TAP Miles&Go - Status 2026-04-14 ## Situação Atual O scraper TAP funciona e retorna **86+ voos** com dados completos (horários, duração, paradas, segmentos, cabine, fareFamily). **PORÉM**: retorna apenas preços em **BRL (cash)**, não milhas. - `milhasNumero: 0` - `valorDinheiro: "R$ 5854.13"` - `moeda: "BRL"` ## Por que não retorna milhas? A API TAP (`booking.flytap.com/bfm/rest/booking/availability/search`) envia `payWithMiles=false` por padrão. **Tentativas de mudar para `payWithMiles=true`:** 1. Parâmetro no deeplink URL → Ignorado pelo Angular app 2. CDP Fetch intercept → Não funciona com puppeteer-real-browser 3. Puppeteer `setRequestInterception` → Não funciona com puppeteer-real-browser 4. `evaluateOnNewDocument` com XHR/fetch override → Funcionou! Mas TAP retorna 0 ofertas com `payWithMiles=true` sem login **Conclusão:** TAP Miles&Go **EXIGE autenticação** (login com conta Miles&Go) para ver disponibilidade de milhas. Sem login, `payWithMiles=true` retorna 0 resultados. ## Próximos Passos Para pegar milhas TAP seria necessário: 1. Implementar login automático com credenciais Miles&Go 2. Ou usar uma abordagem diferente (API interna TAP com token) 3. Ou aceitar modo cash (BRL) e mostrar preços em dinheiro no frontend ## Scraper Revertido O scraper foi revertido para o backup original que funciona em modo cash. Arquivo: `/opt/skymilhas/scrapers/tap/index.js` ## Dados que o Scraper Retorna (modo cash) ```json { "programa": "TAP Miles&Go", "companhia": "TAP Air Portugal", "codigoCompanhia": "TP", "milhas": "N/A", "milhasNumero": 0, "valorDinheiro": "R$ 5854.13", "taxaEmbarque": "R$ 216.76", "moeda": "BRL", "cabine": "Economy", "fareFamily": "Classic", "segmentos": [...] } ```