Guia de como a Sirius criou um token de acesso ao Meta (Facebook/Instagram) que não expira nunca e já vem com todas as permissões. É a fundação do nosso ecossistema próprio: gestão de anúncios pelas skills, e no futuro o planejador social publicando direto no Instagram.
Guia técnico, de admin. Quem opera é o Thiago ou o Álvaro. Feito em 03/06/2026, registrando exatamente o que funcionou (e os muros que a gente bateu pra chegar lá).
O token velho era um token de usuário (preso na conta pessoal do Álvaro). Tinha dois defeitos crônicos:
A solução é trocar o tipo de token: de token de usuário para token de usuário do sistema (system user).
| Token de usuário (antigo) | Token de system user (novo) | |
|---|---|---|
| Preso a quê | conta pessoal de alguém | ninguém — vive no Portfólio Empresarial |
| Expira | corta acesso a cada ~90 dias | nunca |
| Permissões | caíam a cada regeração | fixas, não dependem de regerar |
104259242738344).developers.facebook.com. É quem "emite" os tokens. O nosso é o siriuspetvethub.O app precisa ser do tipo Empresa (Business) e nascer dentro do BM da Sirius. Se você criar um app fora e tentar "reivindicar" depois, o Meta dá erro genérico (foi o primeiro muro que a gente bateu — o app antigo era tipo "Nenhum", não dá pra reivindicar).
siriuspetvethub.Os casos de uso são o que libera cada grupo de permissão na hora de gerar o token. Sem eles, a lista de permissões vem capada. Marca estes 4:
| Caso de uso | Pra quê |
|---|---|
| Criar e gerenciar anúncios com a API de Marketing | gestão de campanhas |
| Capturar e gerenciar leads de anúncios | puxar leads de formulário |
| Gerenciar mensagens e conteúdo no Instagram | publicar no IG (planejador social) |
| Gerenciar tudo na sua Página | publicar na página FB + insights |
Não precisa publicar o app (deixa em "Não publicado"). Publicar serve pra quando usuários externos logam no app — não é o nosso caso, a gente usa token de system user sobre ativos do próprio BM, e isso funciona em modo de desenvolvimento.
No Centro de Contas / Verificações, dispara a verificação do negócio do BM. É a etapa de latência (leva dias, do lado do Meta). Os anúncios não dependem dela, mas publicar no Instagram em produção depende. Quanto antes apertar o botão, antes destrava.
Em Business Settings → Usuários → Usuários do sistema:
siriusadscontent) → função.siriuspetvethub → deixa em "o token nunca expira" → marca as permissões (lista abaixo) → Gerar.Anúncios: ads_management · ads_read · leads_retrieval
Negócio: business_management
Páginas: pages_show_list · pages_read_engagement · pages_manage_ads
pages_manage_posts · pages_manage_metadata · read_insights
Instagram: instagram_basic · instagram_content_publish · instagram_manage_comments
instagram_content_publish vier cinza/indisponível, é a verificação que ainda não passou. Marca o resto e gera assim mesmo — o token de anúncios fica completo, e o IG religa depois sem refazer nada.O token e o segredo do app são sensíveis — nunca vão pro repositório. Ficam só na máquina, em arquivos fora do git:
~/.config/sirius/meta-siriuspetvethub.env — backup do token + App ID + Secret.~/.claude/skills/meta-ads-ratos/.env — onde a skill lê (campo META_ADS_TOKEN).O token recém-criado só enxerga os ativos da Sirius. As contas de cliente moram em BMs próprios. Pra um token só alcançar a carteira inteira, cada BM de cliente precisa compartilhar a conta com o BM da Sirius. Como o Álvaro é admin dos dois lados, ele aprova sozinho.
Parte A — no BM do CLIENTE (compartilha pra fora):
104259242738344.Parte B — no BM SIRIUS (atribui ao robô):
Repete pra cada cliente. Pra publicar conteúdo do cliente também (planejador social), compartilha igual a página e o Instagram dele, não só a conta de anúncio.
Antes de confiar no token, confirma ao vivo que ele enxerga as contas. Com a skill meta-ads-ratos instalada:
cd ~/.claude/skills/meta-ads-ratos
.venv/bin/python scripts/read.py accounts
Tem que listar as contas (Sirius + clientes compartilhados). Aí é só colar o token novo no META_ADS_TOKEN do .env da skill, junto com o META_APP_ID e META_APP_SECRET do app novo. O token antigo fica comentado como emergência.