Y2Insta Instagram Feed
Exibe o feed do Instagram de forma nativa via proxy PHP server-side, sem token de API, sem pacotes externos. Também suporta feed via JSON estático e o embed oficial do Meta por URL.
1. Como Funciona — Os 3 Modos
A Instagram Basic Display API foi desativada em dezembro de 2024. A oEmbed pública requer token desde 2020. Não existe mais acesso direto sem autenticação pelo browser. O Y2Insta resolve isso via proxy PHP server-side — seu servidor faz a requisição, o browser nunca toca diretamente no Instagram.
Coloque y2instagram.php no seu projeto.
Informe y2insta-user. O PHP busca e cacheia por 1h. Cards nativos com imagem, legenda e stats.
Você cria/atualiza um feed.json manualmente
ou via cron. 100% confiável, sem depender do Instagram. Ideal para produção crítica.
URLs individuais de posts via y2insta-urls.
Usa o embed.js do Instagram — carrega o card nativo completo por post.
2. Modo Proxy PHP — Feed Automático
A forma mais prática. Copie y2instagram.php para seu projeto, aponte o atributo
y2insta-proxy e informe o username. O PHP busca no Instagram, salva em cache JSON
e serve para o JS.
Passo 1 — Copie o proxy para seu projeto
O proxy cria automaticamente a pasta cache/instagram/ ao lado do arquivo PHP.
Certifique-se que a pasta tem permissão de escrita (chmod 755) e que o PHP tem cURL habilitado.
Passo 2 — Use no HTML
Demo ao vivo
Feed real do @sanweb.dev via proxy PHP:
Resultado visual (mockup)
Grade de cards nativos com hover mostrando legenda e stats:
Hover em cada card revela a legenda + ❤ curtidas + 💬 comentários. Clique abre o post no Instagram.
Atributos do modo proxy
| Atributo | Padrão | Descrição |
|---|---|---|
y2insta-user | - | Username do Instagram (sem @) |
y2insta-proxy | /dist/y2instagram.php | Caminho do proxy PHP no seu servidor |
y2insta-limit | 12 | Máximo de posts a exibir (até 50) |
y2insta-cols | 3 | Colunas da grade |
y2insta-gap | .4rem | Espaçamento entre os cards |
API do proxy PHP
O proxy faz scraping do Instagram sem autenticação. Isso pode parar de funcionar se o Instagram bloquear seu IP ou mudar a estrutura interna. Nesse caso, use o Modo 2 (JSON estático) como fallback. Para ambientes críticos, prefira o JSON estático atualizado por cron.
3. Modo JSON Estático — 100% Confiável
Você mantém um arquivo feed.json com os dados dos posts.
Pode ser atualizado manualmente, por um cron job ou por qualquer outro processo.
Zero dependência do Instagram em tempo real.
Formato do JSON
Dica pro: combine o proxy PHP com um cron job. O PHP gera o JSON e salva em
/data/instagram.json. O componente aponta para esse arquivo estático.
Assim, se o Instagram bloquear a geração, o JSON antigo ainda serve o conteúdo.
4. Modo Embed Oficial — Posts Individuais por URL
Para incorporar posts específicos pelo link. Usa o embed.js do Instagram
e renderiza o card nativo completo — avatar, foto, legenda, curtidas.
Não precisa de proxy nem JSON.
Modo iframe — grade compacta
Modo iframe não carrega embed.js, mas pode ser bloqueado pelo navegador dependendo da configuração de cookies.
5. Comparativo dos Modos
| Característica | Proxy PHP | JSON Estático | Embed URL |
|---|---|---|---|
| Automático | ✅ Sim | ⚙️ Via cron | ✅ Sim |
| Confiabilidade | ⚠️ Pode ser bloqueado | ✅ 100% | ⚠️ Depende do Instagram |
| Velocidade | ✅ Cache 1h | ✅ Arquivo estático | ⚠️ Carrega embed.js externo |
| Design customizável | ✅ Cards Y2 nativos | ✅ Cards Y2 nativos | ❌ Layout do Instagram |
| Requer PHP | ✅ Sim | ❌ Não | ❌ Não |
| Dados de perfil | ✅ Nome, avatar, followers | ✅ Se incluir no JSON | ❌ Por post apenas |
6. Quick Reference — Todos os Atributos
| Atributo | Modo | Padrão | Descrição |
|---|---|---|---|
y2insta | todos | - | Ativa Y2Insta no elemento |
y2insta-user | proxy | - | Username do Instagram (sem @) |
y2insta-proxy | proxy | /dist/y2instagram.php | Caminho do proxy PHP |
y2insta-json | json | - | URL do arquivo JSON estático |
y2insta-limit | proxy/json | 12 | Máximo de posts a renderizar |
y2insta-urls | embed | - | URLs de posts separadas por vírgula |
y2insta-mode | embed | embed | embed ou iframe |
y2insta-cols | todos | 3 | Colunas da grade |
y2insta-gap | todos | .4rem | Espaçamento entre posts |