Feed do Instagram JavaScript
Mostra as publicações de um perfil do Instagram no seu site, em grade de fotos com legenda e curtidas ao passar o mouse — a partir do seu servidor, de um arquivo JSON ou de links de posts escolhidos.
O que é
Serve para a página "Siga a gente" de uma loja, restaurante ou estúdio: as últimas fotos do Instagram aparecem no site, e cada uma leva ao post. Você escreve uma <div sw-instagram> e diz de onde vêm os posts. Como o Instagram não deixa um site qualquer ler o perfil direto do navegador, há quatro caminhos: demonstração (posts de exemplo, para montar a tela), seu servidor (um arquivo PHP seu busca o perfil), arquivo JSON que você mantém, ou links de posts escolhidos a dedo (usa o incorporador oficial do Instagram).
Precisa do JavaScript do SW Core. Nos modos servidor e JSON, ele busca os dados, mostra blocos "carregando" e monta um cabeçalho (foto, @perfil, seguidores e link) mais a grade de posts; passar o mouse mostra a legenda e as curtidas, e o ícone ▶ marca vídeo. No modo links, cada post é o incorporado oficial do Instagram. Atenção: o arquivo PHP do modo servidor não vem no pacote do SW Core — você precisa criá-lo (o formato está na receita).
Quando usar
- Montar e aprovar o layout antes de ter a conta ligada:
sw-instagram-demo. - Feed sempre atualizado e você tem um servidor PHP:
sw-instagram-user+ o seu proxy. - Site estático (sem PHP): gere um
posts.jsone usesw-instagram-json. - Só alguns posts escolhidos (os melhores trabalhos):
sw-instagram-urls.
Comece aqui
-
1
Coloque o SW Core na página.
<link rel="stylesheet" href="swcore/swcore.min.css"> <!-- fim do body --> <script src="swcore/swcore.min.js"></script> -
2
Comece pela demonstração, que funciona sem nada externo, para acertar colunas e espaço.
<div sw-instagram sw-instagram-demo sw-instagram-limit="6"></div> -
3
Depois troque a fonte por uma de verdade — por exemplo, um arquivo JSON do seu site (formato na receita abaixo).
<div sw-instagram sw-instagram-json="/dados/instagram.json" sw-instagram-limit="6"></div>
Todas as variações
Cada quadro abaixo é o componente de verdade, rodando. O código embaixo é exatamente o que está no quadro: copie e cole.
1. Grade — colunas, espaço e quantidade
Estes quadros usam a demonstração (sw-instagram-demo): posts de exemplo, com cores no lugar das fotos. sw-instagram-cols = colunas (padrão 3), sw-instagram-gap = espaço entre as fotos (padrão .4rem), sw-instagram-limit = quantos posts (padrão 12). Passe o mouse numa foto para ver legenda e curtidas.
<div sw-instagram sw-instagram-demo sw-instagram-limit="6"></div>
<div sw-instagram sw-instagram-demo sw-instagram-cols="4" sw-instagram-gap="0" sw-instagram-limit="8"></div>
<div sw-instagram sw-instagram-demo sw-instagram-cols="2" sw-instagram-gap="1rem" sw-instagram-limit="4"></div>
2. O cabeçalho do perfil
Nos modos demonstração, servidor e JSON, aparece em cima o @perfil, o nome, os seguidores e um botão ↗ que abre o Instagram. Na demonstração, sw-instagram-user só troca o @ exibido.
<div sw-instagram sw-instagram-demo sw-instagram-user="cafe.recife" sw-instagram-limit="3"></div>
Tabela de opções
| Palavra | O que faz | Exemplo |
|---|---|---|
| Fonte dos posts (escolha uma) | ||
sw-instagram-demo | Posts de exemplo, sem rede. Para montar a tela. | <div sw-instagram sw-instagram-demo></div> |
sw-instagram-user | O @ do perfil, buscado pelo seu proxy PHP (sw-instagram-proxy). | sw-instagram-user="cafe.recife" |
sw-instagram-proxy | Endereço do seu proxy. Sempre informe: sem ele, o componente procura /dist/sw-instagram.php, que não vem no SW Core (se não existir, o aviso na tela e no console diz isso). | sw-instagram-proxy="/api/instagram.php" |
sw-instagram-json | Endereço de um arquivo JSON com os posts (tem prioridade sobre o proxy). | sw-instagram-json="/dados/instagram.json" |
sw-instagram-urls | Links de posts separados por vírgula (aceita /p/, /reel/ e /tv/). Apelido: sw-instagram-url. | sw-instagram-urls="https://www.instagram.com/p/AAA/" |
| Só no modo links | ||
sw-instagram-mode="embed" | Padrão. Usa o incorporador oficial do Instagram (post completo). | |
sw-instagram-mode="iframe" | Cada post num quadro de 500 px de altura, sem o script do Instagram. | sw-instagram-mode="iframe" |
| Grade | ||
sw-instagram-cols | Colunas. Padrão: 3. | sw-instagram-cols="4" |
sw-instagram-gap | Espaço entre os posts (qualquer medida CSS). Padrão: .4rem. | sw-instagram-gap="1rem" |
sw-instagram-limit | Quantos posts mostrar. Padrão: 12. | sw-instagram-limit="6" |
Receitas prontas — usos reais
Situações que aparecem em quase todo site. Copie a que servir.
{
"user": "cafe.recife",
"name": "Café Recife",
"avatar": "https://seusite.com/img/avatar.jpg",
"followers": 2480,
"posts": [
{
"url": "https://www.instagram.com/p/AAA/",
"image": "https://seusite.com/img/post-1.jpg",
"caption": "Café novo no cardápio ☕",
"likes": 187,
"comments": 24,
"is_video": false
}
]
}
<!-- em caso de problema, devolva { "error": "mensagem" } que ela aparece no lugar da grade -->
<div sw-instagram
sw-instagram-json="/dados/instagram.json"
sw-instagram-cols="3"
sw-instagram-limit="9"></div>
<!-- atualize o /dados/instagram.json quando quiser (à mão ou por uma automação) -->
<div sw-instagram
sw-instagram-user="cafe.recife"
sw-instagram-proxy="/api/instagram.php"
sw-instagram-limit="9"></div>
<!-- O componente chama: /api/instagram.php?user=cafe.recife&limit=9
O seu PHP busca os posts (pela API oficial da Meta, com o token da SUA conta,
guardado só no servidor) e devolve o JSON no formato da receita acima.
Se "image" vier como "?img=…", o componente pede a imagem ao mesmo proxy. -->
<!-- post completo, como no Instagram (carrega o script instagram.com/embed.js) -->
<div sw-instagram
sw-instagram-urls="https://www.instagram.com/p/AAA/, https://www.instagram.com/reel/BBB/"
sw-instagram-cols="2"></div>
<!-- sem o script do Instagram: cada post num iframe de 500 px -->
<div sw-instagram
sw-instagram-urls="https://www.instagram.com/p/AAA/"
sw-instagram-mode="iframe"></div>
API (JavaScript)
SW.Instagram.initAll(raiz)[sw-instagram] dentro de raiz. Normalmente não precisa: o SW Core liga sozinho. SWInstagram é o mesmo objeto.Precisa de quê
swcore.min.csseswcore.min.js.- Modo servidor: um arquivo seu (PHP ou outro) que devolva o JSON da receita. O SW Core não traz esse arquivo — o padrão
/dist/sw-instagram.phpnão existe no pacote. - Modo JSON: o arquivo JSON acessível no seu site.
- Modo links: internet no navegador de quem visita (o conteúdo vem do instagram.com).
Cuidados — erros comuns
- Usar
sw-instagram-usersem ter criado o proxy: aparece "Erro ao carregar: 404" e um aviso dizendo que o proxy não vem no SW Core. Crie o seu e aponte emsw-instagram-proxy. - Colocar o token da conta do Instagram no HTML ou no JavaScript: qualquer visitante vê. O token fica só no seu servidor, dentro do proxy.
- Esquecer de tirar o
sw-instagram-demoquando ligar a fonte real: a demonstração tem prioridade e os posts de exemplo continuam aparecendo. - Modo links com o incorporador oficial: ele carrega script do Instagram (que rastreia visitas). Se o site usa o banner LGPD, prefira
sw-instagram-mode="iframe"ou o modo JSON.
O que ele não faz
- Não fala direto com o Instagram: sem proxy, JSON ou links, não há posts.
- Não atualiza sozinho depois que a página abriu.
- Não tem eventos nem função para recarregar por código.
- Se o Instagram mudar o incorporador ou a API, os modos links e servidor podem parar; o modo JSON é o mais estável.

