Trabalho com TI há mais de 10 anos (atualmente como Analista N2 e focado em infra e cibersegurança) e recentemente me enfiei em um desafio massa: desenvolver extensões para o Chrome usando Vibecode e mapeamento de APIs internas.
Muita gente acha que criar extensão é só jogar um HTML num popup, mas quando você mexe com Instagram e LinkedIn (que são verdadeiras "fortalezas"), o buraco é mais embaixo. Vou compartilhar com vocês o que aprendi nessa jornada de aprovação, erros de código e como sobreviver ao Manifest V3.
O objetivo era criar duas ferramentas: uma para listar quem não te segue de volta no Instagram e outra para gerir contatos no LinkedIn por afinidade (tags de headline), com exportação para CSV/JSON.
O primeiro grande aprendizado: não use APIs públicas se elas não existem ou são limitadas. Eu mapeei as chamadas internas que o próprio navegador faz. É "engenharia reversa" pura. Se você intercepta o tráfego, entende o JSON que volta e replica isso na sua ferramenta, você ganha um poder absurdo.
No começo, eu queria que a extensão lesse tudo de uma vez. Erro fatal. O Instagram e o LinkedIn detectam padrões de repetição. Se você faz 50 requisições em 2 segundos, sua conta vai para o "limbo".
A Solução: Implementar o que chamo de Human-like delay.
"Não adianta ser rápido se você for banido. O segredo é simular a lerdeza humana."
Se você está começando agora, esqueça o Manifest V2. O Google matou ele. Tudo agora é V3, o que significa que não podemos mais carregar código remoto (tchau, CDNs externas) e tudo precisa ser declarado no manifest.json.
Aqui está um exemplo genérico de como estruturei as permissões para não ser barrado na revisão manual do Google:
{
"manifest_version": 3,
"name": "Social Network Manager - Export & Stats",
"version": "1.0.0",
"permissions": ["storage", "downloads", "scripting"],
"host_permissions": [
"https://*.domain.com/*"
],
"action": {
"default_popup": "popup.html"
},
"background": {
"service_worker": "background.js"
}
}
Um erro que tive foi tentar disparar o download direto do Service Worker. No V3, ele não tem acesso ao DOM. Tive que usar um offscreen document ou fazer a lógica de criação do Blob direto no popup.js:
// Exemplo de como gerei o CSV localmente sem servidor externo
const exportToCSV = (data) => {
const csvContent = "data:text/csv;charset=utf-8,"
+ data.map(e => `${e.name},${e.headline}`).join("\n");
const encodedUri = encodeURI(csvContent);
const link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "my_leads.csv");
document.body.appendChild(link);
link.click();
};
Se você enviar uma extensão que diz "Automação de LinkedIn", você será rejeitado em 24 horas. O Google odeia o termo "automação" para redes sociais.
O que eu fiz para passar:
- Mude o foco: Venda a ferramenta como "Produtividade" ou "Gestão de Dados Pessoais".
- Privacidade em primeiro lugar: No formulário de revisão, deixei claro: "A extensão não envia dados para servidores externos. O processamento é 100% local." Isso reduz o risco de segurança absurdamente.
- Vídeo de demonstração: Gravei um vídeo mostrando a ferramenta funcionando. Isso evita que o revisor ache que seu código é um malware escondido.
Muita gente pergunta: "Pra que o trabalho de aprovar na loja se posso usar em modo desenvolvedor?".
Cara, o ganho de autoridade é imenso.
Portfólio: Ter um link da domain.com apontando para o seu site ([email protected]) é um backlink de ouro para SEO.
Confiança: Quando um cliente vê que você domina APIs complexas e passou pelo crivo da Google, o valor do seu freela sobe.
Estudo de Caso: Usei essas extensões como base para o meu SaaS de gestão de estudos e carreira. É tudo um ecossistema.
Desenvolver extensões em 2026 exige paciência com as APIs e respeito aos limites de taxa (rate limiting). Se você for ético, mantiver os dados locais e souber "conversar" com as APIs internas, as possibilidades de criar ferramentas úteis são infinitas.
Este artigo foi útil?
Deixe uma reação rápida para apoiar o conteúdo:
Este post está licenciado sob CC BY-NC.



Comentários
Participe da discussão abaixo.
0 comentários