<< All versions

Skill v1.0.2

currentAutomated scan85/100
dobralabs/ccos-ratos/publicar-instagram

5 files

──Details
PublishedSeptember 19, 2026 at 11:25 PM
Content Hashsha256:9b694a7afc882d57...
Git SHA993b7e57fc6a
Bump Typepatch
Compare with v1.0.1
──Files
Files (1 file, 7.0 KB)
SKILL.md7.0 KBactive
SKILL.md · 213 lines · 7.0 KB

version: "1.0.2" name: publicar-instagram description: > Publica carrosséis e posts no Instagram e TikTok direto do Claude Code. Suporta dois métodos: Post for Me (mais simples, multi-plataforma) ou Graph API do Instagram (direto, sem intermediário). Inclui setup guiado na primeira vez pra configurar credenciais. Use quando o usuário mencionar "publicar", "postar no instagram", "publicar carrossel", "publicar no tiktok", "postar isso", ou pedir pra enviar imagens pro Instagram/TikTok.


/publicar — Publicar no Instagram e TikTok

Setup (primeira vez)

Na primeira vez, guiar o usuário pra escolher e configurar o método de publicação.

Perguntar o método

"Pra publicar direto do Claude Code, tu tem duas opções:
1. Post for Me (recomendado)
- Publica no Instagram, TikTok e LinkedIn com uma API só
- Setup em 5 minutos, token não expira
- Gratuito pra uso normal
- Site: postforme.dev
2. Graph API do Instagram (avançado)
- Publica direto pela API oficial do Meta/Facebook
- Só Instagram (TikTok e LinkedIn não)
- Token expira a cada 60 dias (precisa renovar)
- Setup mais técnico (~15 min)
- Gratuito
Qual tu prefere?"

Setup Post for Me

Se escolheu Post for Me:

  1. Criar conta:

> "Acessa postforme.dev, cria uma conta e conecta teu Instagram (e TikTok se quiser). > Depois vai em Settings > API e copia a API Key. Cola aqui."

  1. Salvar a key:

Receber a API key e adicionar no .env: `` POSTFORME_API_KEY=pfm_live_xxxxx ``

  1. Testar conexão:

``bash curl -s -H "Authorization: Bearer $(grep POSTFORME_API_KEY .env | cut -d= -f2)" \ "https://app.postforme.dev/api/v1/social-accounts?platform=instagram" | head -c 200 `` Se retornar conta conectada, tá pronto. Se não, guiar o usuário pra conectar a conta no dashboard.

  1. Conferir o script de publicação:

scripts/publish-postforme.js vem dentro desta skill e roda de lá. Não copiar pra fora: assim a skill viaja inteira quando a pasta for compartilhada.

  1. Confirmar:

> "Pronto! Script de publicação instalado. Tua conta tá conectada. Pra publicar, é só chamar /publicar com as imagens."


Setup Graph API

Se escolheu Graph API:

  1. Guiar configuração do Meta Developer:

> "Vou te guiar passo a passo. Primeiro: > 1. Acessa developers.facebook.com e cria um app tipo 'Empresa' > 2. No app, ativa o produto 'Instagram Graph API' > 3. Vai no Graph API Explorer (developers.facebook.com/tools/explorer/) > 4. Seleciona teu app e gera um token com estes escopos: > - instagram_content_publish > - instagram_basic > - pages_read_engagement > 5. Cola o token aqui"

  1. Converter token pra longa duração (60 dias):

``bash curl -s "https://graph.facebook.com/v21.0/oauth/access_token?grant_type=fb_exchange_token&client_id=APP_ID&client_secret=APP_SECRET&fb_exchange_token=TOKEN_CURTO" `` Pedir App ID e App Secret ao usuário.

  1. Pegar Instagram User ID:

``bash curl -s "https://graph.facebook.com/v21.0/me/accounts?access_token=TOKEN_LONGO" | python3 -m json.tool ` Com o Page ID: `bash curl -s "https://graph.facebook.com/v21.0/PAGE_ID?fields=instagram_business_account&access_token=TOKEN_LONGO" ``

  1. Configurar imgbb (host de imagens):

> "A Graph API precisa de URL pública pra cada imagem. O imgbb faz isso de graça: > 1. Acessa api.imgbb.com > 2. Cria conta e copia a API Key > 3. Cola aqui"

  1. Salvar tudo no `.env`:

`` INSTAGRAM_ACCESS_TOKEN=token_longo_aqui INSTAGRAM_USER_ID=id_aqui IMGBB_API_KEY=key_aqui ``

  1. Conferir o script:

scripts/publish-graph-api.js vem dentro desta skill e roda de lá. Não copiar pra fora.

  1. Avisar sobre renovação:

> "Importante: teu token do Instagram expira em 60 dias. Quando parar de funcionar, roda /publicar de novo que eu te guio pra renovar."


Workflow de publicação (após setup)

1. Detectar o que publicar

Se o usuário chamou /publicar sem argumentos, verificar:

  • Existe conteudo/carrosseis/ com PNGs recentes? Se sim, oferecer publicar o mais recente
  • Se não, perguntar: "O que tu quer publicar? Me passa o caminho das imagens ou roda /carrossel primeiro"

Se chamou com caminho (ex: /publicar conteudo/carrosseis/ia-no-varejo/instagram/):

  • Usar os PNGs e o carousel-text.md (legenda) daquela pasta

2. Detectar o método configurado

Verificar .env:

  • Se tem POSTFORME_API_KEY -> usar Post for Me
  • Se tem INSTAGRAM_ACCESS_TOKEN -> usar Graph API
  • Se tem os dois -> perguntar qual usar
  • Se não tem nenhum -> rodar setup

3. Preview antes de publicar

Antes de qualquer publicação, mostrar preview:

"Vou publicar no Instagram:
- Imagens: slide-01.png, slide-02.png, ... slide-08.png
- Legenda: [primeiros 200 chars]...
- Método: Post for Me / Graph API
Quer que eu faça um dry-run primeiro pra testar, ou manda direto?"

4. Dry-run (recomendado na primeira vez)

Os comandos abaixo rodam da raiz do sistema. Se a skill mora na pasta de um projeto, o caminho é <pasta>/.claude/skills/publicar-instagram/scripts/....

bash
# Post for Me
node --env-file=.env .claude/skills/publicar-instagram/scripts/publish-postforme.js \
--platform "instagram" \
--images "slide-01.png,slide-02.png,..." \
--caption "legenda" \
--dry-run
# Graph API
node --env-file=.env .claude/skills/publicar-instagram/scripts/publish-graph-api.js \
--images "slide-01.png,slide-02.png,..." \
--caption "legenda" \
--dry-run

Mostrar resultado do dry-run. Se OK, perguntar:

"Dry-run passou. Quer publicar de verdade?"

5. Publicar

bash
# Post for Me — Instagram
node --env-file=.env .claude/skills/publicar-instagram/scripts/publish-postforme.js \
--platform "instagram" \
--images "slide-01.png,slide-02.png,..." \
--caption "legenda"
# Post for Me — TikTok (SEMPRE como draft pro usuario escolher musica no app)
node --env-file=.env .claude/skills/publicar-instagram/scripts/publish-postforme.js \
--platform "tiktok" \
--images "slide-01.png,slide-02.png,..." \
--caption "legenda tiktok" \
--draft
# Graph API — Instagram
node --env-file=.env .claude/skills/publicar-instagram/scripts/publish-graph-api.js \
--images "slide-01.png,slide-02.png,..." \
--caption "legenda"

6. Confirmar

Após publicação:

"Publicado no Instagram! [link se disponível]"

Se o usuário quiser publicar no TikTok também (e usar Post for Me), perguntar:

"Quer publicar no TikTok também? Vai como rascunho pra tu escolher a música no app."

Regras

  • NUNCA publicar sem confirmação explícita do usuário
  • Dry-run recomendado na primeira publicação (não obrigatório depois)
  • TikTok via Post for Me: SEMPRE como draft (flag --draft)
  • Se o token da Graph API expirou, guiar renovação em vez de dar erro genérico
  • Legenda max: 2200 caracteres (Instagram/TikTok), 3000 (LinkedIn)
  • Imagens: 2-10 (Instagram), 4-35 (TikTok)
  • Nunca commitar .env no git (já tá no .gitignore)
← v1.0.1All versions