[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-95cbe13d-ace2-412e-b033-063c7e1ee736":3,"$fZBokiMIN9kH5_X1aHyP6SKoA8Suech2NZT_QIOS3wLM":42},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":33},"95cbe13d-ace2-412e-b033-063c7e1ee736","instagram","与Instagram通过Graph API实现全面集成。发布、分析、评论、私信、标签、日程安排、模板和Business\u002FCreator账户管理。","cat_coding_backend","mod_coding","sickn33,coding","---\nname: instagram\ndescription: Integracao completa com Instagram via Graph API. Publicacao, analytics, comentarios, DMs, hashtags, agendamento, templates e gestao de contas Business\u002FCreator.\nrisk: critical\nsource: community\ndate_added: '2026-03-06'\nauthor: renat\ntags:\n- social-media\n- instagram\n- graph-api\n- content\ntools:\n- claude-code\n- antigravity\n- cursor\n- gemini-cli\n- codex-cli\n---\n\n# Skill: Instagram Integration\n\n## Overview\n\nIntegracao completa com Instagram via Graph API. Publicacao, analytics, comentarios, DMs, hashtags, agendamento, templates e gestao de contas Business\u002FCreator.\n\n## When to Use This Skill\n\n- When the user mentions \"instagram\" or related topics\n- When the user mentions \"ig\" or related topics\n- When the user mentions \"post instagram\" or related topics\n- When the user mentions \"publicar instagram\" or related topics\n- When the user mentions \"reels instagram\" or related topics\n- When the user mentions \"stories instagram\" or related topics\n\n## Do Not Use This Skill When\n\n- The task is unrelated to instagram\n- A simpler, more specific tool can handle the request\n- The user needs general-purpose assistance without domain expertise\n\n## How It Works\n\nControle completo da conta Instagram via Graph API. Publicação, comunidade, analytics,\nDMs, hashtags, templates e dashboard — tudo gerido com governança (rate limits, audit log,\nconfirmações antes de ações públicas).\n\n## Resumo Rápido\n\n| Área | Scripts | O que faz |\n|------|---------|-----------|\n| **Setup** | `account_setup.py`, `auth.py` | Configurar conta, OAuth, token |\n| **Publicação** | `publish.py`, `schedule.py` | Publicar foto\u002Fvídeo\u002Freel\u002Fstory\u002Fcarrossel, agendar |\n| **Comunidade** | `comments.py`, `messages.py` | Comentários, DMs, menções |\n| **Analytics** | `insights.py`, `analyze.py` | Métricas, melhores horários, top posts |\n| **Hashtags** | `hashtags.py` | Pesquisa e tracking |\n| **Inteligência** | `templates.py`, `analyze.py` | Templates de conteúdo, tendências |\n| **Infra** | `export.py`, `serve_api.py`, `run_all.py` | Exportar, dashboard, sync |\n| **Leitura** | `profile.py`, `media.py` | Perfil, listar mídia |\n\n## Localização\n\n```\nC:\\Users\\renat\\skills\\instagram\\\n├── SKILL.md\n├── scripts\u002F\n│   ├── requirements.txt\n│   │  # ── CORE ──\n│   ├── config.py                     # Paths, constantes, specs de mídia\n│   ├── db.py                         # SQLite: accounts, posts, comments, insights\n│   ├── auth.py                       # OAuth 2.0, token storage\u002Frefresh\n│   ├── api_client.py                 # Instagram Graph API wrapper + retry\n│   ├── governance.py                 # Rate limits, audit log, confirmações\n│   │  # ── FEATURES ──\n│   ├── account_setup.py              # Detecção conta, migração, verificação\n│   ├── publish.py                    # Publicar + upload local via Imgur\n│   ├── schedule.py                   # Orquestrador: approved → published\n│   ├── comments.py                   # Ler\u002Fresponder\u002Fdeletar comentários\n│   ├── messages.py                   # DMs (enviar\u002Freceber\u002Flistar)\n│   ├── insights.py                   # Fetch + store métricas\n│   ├── hashtags.py                   # Pesquisa + tracking\n│   ├── profile.py                    # Ver\u002Fatualizar perfil\n│   ├── media.py                      # Listar mídia, detalhes\n│   │  # ── INTELIGÊNCIA ──\n│   ├── templates.py                  # Templates de caption\u002Fhashtags\n│   ├── analyze.py                    # Melhores horários, top posts\n│   │  # ── INFRA ──\n│   ├── export.py                     # Exportar JSON\u002FCSV\u002FJSONL\n│   ├── serve_api.py                  # FastAPI + dashboard\n│   └── run_all.py                    # Sync completo\n├── references\u002F\n│   ├── graph_api.md                  # Endpoints e parâmetros\n│   ├── permissions.md                # Scopes OAuth por feature\n│   ├── rate_limits.md                # Limites 2025\n│   ├── account_types.md              # Business vs Creator\n│   ├── publishing_guide.md           # Specs de mídia\n│   ├── setup_walkthrough.md          # Guia Meta App\n│   └── schema.md                     # ER diagram\n├── static\u002F\n│   └── dashboard.html                # Dashboard Chart.js\n└── data\u002F\n    \n\n## Instalação (Uma Vez)\n\n```bash\npip install -r C:\\Users\\renat\\skills\\instagram\\scripts\\requirements.txt\n```\n\n## Configuração Inicial\n\n```bash\n\n## 1. Verificar Tipo De Conta Instagram\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\account_setup.py --check\n\n## 2. Configurar Oauth (Abre Browser Para Autorização)\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\auth.py --setup\n\n## 3. Verificar Se Está Tudo Funcionando\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\profile.py --view\n```\n\nSe a conta for pessoal, o script `account_setup.py --guide` dá instruções de migração\npara Business ou Creator.\n\n## Foto (Aceita Arquivo Local — Faz Upload Automático Via Imgur)\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --type photo --image caminho\u002Ffoto.jpg --caption \"Texto do post\"\n\n## Vídeo\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --type video --video caminho\u002Fvideo.mp4 --caption \"Meu vídeo\"\n\n## Reel\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --type reel --video caminho\u002Freel.mp4 --caption \"Novo reel!\"\n\n## Story\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --type story --image caminho\u002Fstory.jpg\n\n## Carrossel (2-10 Imagens)\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --type carousel --images img1.jpg img2.jpg img3.jpg --caption \"Carrossel\"\n\n## Criar Como Rascunho (Não Publica Imediatamente)\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --type photo --image foto.jpg --caption \"Texto\" --draft\n\n## Aprovar Rascunho Para Publicação\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --approve --id 5\n```\n\n## Agendar Publicação Futura\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\schedule.py --type photo --image foto.jpg --caption \"Post agendado\" --at \"2026-03-01T10:00\"\n\n## Listar Posts Agendados\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\schedule.py --list\n\n## Processar Posts Prontos Para Publicar\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\schedule.py --process\n\n## Cancelar Agendamento\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\schedule.py --cancel --id 5\n```\n\n## Listar Comentários De Um Post\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\comments.py --list --media-id 12345\n\n## Responder A Um Comentário\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\comments.py --reply --comment-id 67890 --text \"Obrigado!\"\n\n## Deletar Comentário\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\comments.py --delete --comment-id 67890\n\n## Ver Menções\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\comments.py --mentions\n\n## Comentários Não Respondidos\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\comments.py --unreplied\n```\n\n## Enviar Dm\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\messages.py --send --user-id 12345 --text \"Olá!\"\n\n## Listar Conversas\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\messages.py --conversations\n\n## Ver Mensagens De Uma Conversa\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\messages.py --thread --conversation-id 12345\n```\n\n## Métricas De Um Post Específico\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\insights.py --media --media-id 12345\n\n## Métricas Da Conta (Últimos 7 Dias)\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\insights.py --user --period day --since 7\n\n## Buscar E Salvar Insights De Todos Os Posts Recentes\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\insights.py --fetch-all --limit 20\n```\n\n## Melhores Horários Para Postar (Baseado Nos Seus Dados)\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\analyze.py --best-times\n\n## Top Posts Por Engajamento\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\analyze.py --top-posts --limit 10\n\n## Tendências De Crescimento\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\analyze.py --growth --period 30\n```\n\n## Buscar Posts Recentes Com Uma Hashtag\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\hashtags.py --search \"artificialintelligence\" --limit 25\n\n## Top Posts De Uma Hashtag\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\hashtags.py --top \"tecnologia\"\n\n## Info Da Hashtag (Contagem De Posts)\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\hashtags.py --info \"marketing\"\n```\n\n## Criar Template\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\templates.py --create --name \"promo\" --caption \"Nova promoção: {produto}! {desconto}% OFF\" --hashtags \"#oferta,#desconto,#promoção\"\n\n## Listar Templates\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\templates.py --list\n\n## Usar Template Em Um Post\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --type photo --image foto.jpg --template promo --vars produto=\"Tênis\" desconto=30\n```\n\n## Ver Perfil\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\profile.py --view\n\n## Listar Posts Recentes\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\media.py --list --limit 10\n\n## Detalhes De Um Post\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\media.py --details --media-id 12345\n```\n\n## Exportar Analytics Para Csv\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\export.py --type insights --format csv\n\n## Exportar Comentários\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\export.py --type comments --format json\n\n## Exportar Tudo\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\export.py --type all --format csv\n\n## Iniciar Dashboard Web\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\serve_api.py\n\n## Acesse: Http:\u002F\u002FLocalhost:8000\u002FDashboard\n\n```\n\n## Status Da Autenticação\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\auth.py --status\n\n## Sync Completo (Busca Perfil + Mídia + Insights + Comentários)\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\run_all.py\n\n## Sync Parcial\n\npython C:\\Users\\renat\\skills\\instagram\\scripts\\run_all.py --only media insights\n```\n\n## Rate Limits\n\nA skill rastreia automaticamente os rate limits da API:\n- **200 requests\u002Fhora** por conta\n- **25 publicações\u002Fdia** por conta\n- **30 hashtags únicas\u002Fsemana** por conta\n- **200 DMs\u002Fhora** por conta\n\nQuando em 90% do limite, a skill emite warnings. Se exceder, bloqueia a ação e informa\nquanto tempo esperar.\n\n## Confirmações\n\nAções que afetam conteúdo público requerem confirmação:\n- **PUBLISH**: Publicar foto\u002Fvídeo\u002Freel\u002Fstory\u002Fcarrossel\n- **DELETE**: Deletar comentário\n- **MESSAGE**: Enviar DM\n- **ENGAGE**: Responder comentário, ocultar comentário\n\nO script retorna os detalhes da ação e pede confirmação antes de executar.\n\n## Audit Log\n\nTodas as ações que modificam dados são logadas no banco SQLite (`action_log` table):\n- Timestamp, ação, parâmetros, resultado, status de confirmação\n- Consultar via: `python C:\\Users\\renat\\skills\\instagram\\scripts\\db.py`\n\n## Token Auto-Refresh\n\nO token OAuth (60 dias) é renovado automaticamente quando está a 7 dias de expirar.\nSem intervenção manual necessária.\n\n## Limitações Da Api\n\nCoisas que a Instagram Graph API **não permite**:\n- Deletar posts já publicados\n- Editar captions após publicar\n- Aplicar filtros via API\n- Postar de contas pessoais (só Business\u002FCreator)\n- DMs fora da janela de 24hrs (usuário precisa ter interagido primeiro)\n- Fotos em formato diferente de JPEG (auto-conversão feita pelos scripts)\n\n## \"Quero Publicar Uma Foto\"\n\n```bash\npython C:\\Users\\renat\\skills\\instagram\\scripts\\publish.py --type photo --image foto.jpg --caption \"Texto\"\n```\n\n## \"Me Mostra Meus Analytics\"\n\n```bash\npython C:\\Users\\renat\\skills\\instagram\\scripts\\run_all.py --only insights\npython C:\\Users\\renat\\skills\\instagram\\scripts\\analyze.py --summary\n```\n\n## \"Qual O Melhor Horário Para Postar?\"\n\n```bash\npython C:\\Users\\renat\\skills\\instagram\\scripts\\analyze.py --best-times\n```\n\n## \"Responde Esse Comentário\"\n\n```bash\npython C:\\Users\\renat\\skills\\instagram\\scripts\\comments.py --reply --comment-id ID --text \"Resposta\"\n```\n\n## \"Sincroniza Tudo\"\n\n```bash\npython C:\\Users\\renat\\skills\\instagram\\scripts\\run_all.py\n```\n\n## \"Abre O Dashboard\"\n\n```bash\npython C:\\Users\\renat\\skills\\instagram\\scripts\\serve_api.py\n```\n\n## Referências\n\nConsultar quando precisar de detalhes:\n- `references\u002Fgraph_api.md` — Endpoints, parâmetros e responses da API\n- `references\u002Fpublishing_guide.md` — Specs de mídia (dimensões, formatos, tamanhos)\n- `references\u002Frate_limits.md` — Rate limits detalhados e estratégias\n- `references\u002Faccount_types.md` — Diferenças Business vs Creator, migração\n- `references\u002Fpermissions.md` — Scopes OAuth necessários por feature\n- `references\u002Fsetup_walkthrough.md` — Guia passo-a-passo de setup do Meta App\n- `references\u002Fschema.md` — Schema do banco SQLite (ER diagram, campos, índices, queries)\n\n## Best Practices\n\n- Provide clear, specific context about your project and requirements\n- Review all suggestions before applying them to production code\n- Combine with other complementary skills for comprehensive analysis\n\n## Common Pitfalls\n\n- Using this skill for tasks outside its domain expertise\n- Applying recommendations without understanding your specific context\n- Not providing enough project context for accurate analysis\n\n## Related Skills\n\n- `social-orchestrator` - Complementary skill for enhanced analysis\n- `telegram` - Complementary skill for enhanced analysis\n- `whatsapp-cloud-api` - Complementary skill for enhanced analysis\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,108,1934,"2026-05-16 13:23:50",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":25,"skillCount":32,"createdAt":26},"后端开发","backend","mdi-server","API、数据库、服务端架构",296,[34],{"id":35,"skillId":4,"version":36,"fileName":37,"fileSize":38,"filePath":39,"fileHash":40,"manifest":41,"createdAt":19},"340a32e4-41a5-41fc-baf5-0134a78f9acf","1.0.0","instagram.zip",65697,"uploads\u002Fskills\u002F95cbe13d-ace2-412e-b033-063c7e1ee736\u002Finstagram.zip","3c761a5131e9e41faf8c1425410039c96f4f46dc70a707e9528f1929299a6fb3","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":13990},{\"path\":\"references\u002Faccount_types.md\",\"isDirectory\":false,\"size\":3297},{\"path\":\"references\u002Fgraph_api.md\",\"isDirectory\":false,\"size\":6886},{\"path\":\"references\u002Fpermissions.md\",\"isDirectory\":false,\"size\":3176},{\"path\":\"references\u002Fpublishing_guide.md\",\"isDirectory\":false,\"size\":4983},{\"path\":\"references\u002Frate_limits.md\",\"isDirectory\":false,\"size\":3109},{\"path\":\"references\u002Fschema.md\",\"isDirectory\":false,\"size\":11412},{\"path\":\"references\u002Fsetup_walkthrough.md\",\"isDirectory\":false,\"size\":4153},{\"path\":\"scripts\u002Faccount_setup.py\",\"isDirectory\":false,\"size\":7576},{\"path\":\"scripts\u002Fanalyze.py\",\"isDirectory\":false,\"size\":7382},{\"path\":\"scripts\u002Fapi_client.py\",\"isDirectory\":false,\"size\":17069},{\"path\":\"scripts\u002Fauth.py\",\"isDirectory\":false,\"size\":15401},{\"path\":\"scripts\u002Fcomments.py\",\"isDirectory\":false,\"size\":5456},{\"path\":\"scripts\u002Fconfig.py\",\"isDirectory\":false,\"size\":4372},{\"path\":\"scripts\u002Fdb.py\",\"isDirectory\":false,\"size\":19654},{\"path\":\"scripts\u002Fexport.py\",\"isDirectory\":false,\"size\":5191},{\"path\":\"scripts\u002Fgovernance.py\",\"isDirectory\":false,\"size\":9190},{\"path\":\"scripts\u002Fhashtags.py\",\"isDirectory\":false,\"size\":3520},{\"path\":\"scripts\u002Finsights.py\",\"isDirectory\":false,\"size\":6284},{\"path\":\"scripts\u002Fmedia.py\",\"isDirectory\":false,\"size\":1972},{\"path\":\"scripts\u002Fmessages.py\",\"isDirectory\":false,\"size\":3290},{\"path\":\"scripts\u002Fprofile.py\",\"isDirectory\":false,\"size\":1669},{\"path\":\"scripts\u002Fpublish.py\",\"isDirectory\":false,\"size\":15128},{\"path\":\"scripts\u002Frequirements.txt\",\"isDirectory\":false,\"size\":80},{\"path\":\"scripts\u002Frun_all.py\",\"isDirectory\":false,\"size\":6752},{\"path\":\"scripts\u002Fschedule.py\",\"isDirectory\":false,\"size\":7477},{\"path\":\"scripts\u002Fserve_api.py\",\"isDirectory\":false,\"size\":7585},{\"path\":\"scripts\u002Ftemplates.py\",\"isDirectory\":false,\"size\":5409},{\"path\":\"static\u002Fdashboard.html\",\"isDirectory\":false,\"size\":10016}]",{"code":43,"message":44,"data":45},200,"success",{"items":46,"stats":47,"page":50},[],{"averageRating":48,"totalRatings":48,"ratingCounts":49},0,[48,48,48,48,48],{"limit":51,"offset":48,"hasMore":52,"nextOffset":51,"ratedOnly":16},15,false]