PHPackages                             idsy/instagram - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. idsy/instagram

ActiveLibrary

idsy/instagram
==============

Integração com a API do Instagram

v1.0.0(1mo ago)02↓66.7%MITPHPPHP &gt;=8.0

Since Jul 18Pushed 1mo agoCompare

[ Source](https://github.com/ericpereira-br/idsy-instagram)[ Packagist](https://packagist.org/packages/idsy/instagram)[ RSS](/packages/idsy-instagram/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependenciesVersions (2)Used By (0)

idsy-instagram
==============

[](#idsy-instagram)

Componente PHP para publicação de conteúdo no Instagram através da **Content Publishing API** (Graph API da Meta).

Requisitos
----------

[](#requisitos)

- PHP &gt;= 8.0 com extensão cURL
- Conta **profissional** do Instagram (Business ou Creator)
- Access token *long-lived* com as permissões `instagram_business_basic` e `instagram_business_content_publish` (login via Instagram) ou `instagram_content_publish` (login via Facebook)
- As mídias (imagens/vídeos) precisam estar hospedadas em uma **URL pública** — a API do Instagram faz o download delas

Instalação
----------

[](#instalação)

```
composer require idsy/instagram
```

Uso
---

[](#uso)

### Obter o token via API (fluxo OAuth)

[](#obter-o-token-via-api-fluxo-oauth)

Cadastre no app da Meta a URL de redirecionamento (redirect URI). Depois:

```
use Idsy\Instagram\Instagram;

$instagram = new Instagram();

$instagram->autenticacao->setAppId('SEU_APP_ID');
$instagram->autenticacao->setAppSecret('SEU_APP_SECRET');
$instagram->autenticacao->setRedirectUri('https://www.exemplo.com.br/instagram/callback');

// 1. redirecione o usuário para autorizar o app
header('Location: ' . $instagram->urlAutorizacao());

// 2. no callback, troque o code pelo token long-lived (60 dias)
$instagram->obterToken($_GET['code']);

$instagram->autenticacao->getAccessToken();    // salve no banco
$instagram->autenticacao->getUserId();         // IG User ID, salve no banco
$instagram->autenticacao->getTokenExpiraEm();  // validade do token
```

O `obterToken()` já faz as duas trocas: code → token curto (1 hora) → token long-lived (60 dias).

### Renovar o token

[](#renovar-o-token)

O token long-lived expira em 60 dias e pode ser renovado antes de expirar (o token precisa ter pelo menos 24 horas de vida):

```
$instagram->autenticacao->setAccessToken('TOKEN_SALVO_NO_BANCO');
$instagram->renovarToken();

$instagram->autenticacao->getAccessToken(); // novo token, salve no banco
```

### Publicar imagem no feed

[](#publicar-imagem-no-feed)

```
use Idsy\Instagram\Instagram;

$instagram = new Instagram();

$instagram->autenticacao->setAccessToken('SEU_ACCESS_TOKEN');
$instagram->autenticacao->setUserId('SEU_IG_USER_ID');

$instagram->publicacao->setImagemUrl('https://www.exemplo.com.br/imagem.jpg');
$instagram->publicacao->setLegenda('Minha legenda #hashtag');

$instagram->publicarImagem();

if ($instagram->detalhe->getStatus() == 'ok') {
    echo $instagram->publicacao->getMediaId();
}
```

### Publicar vídeo (Reels)

[](#publicar-vídeo-reels)

```
$instagram->publicacao->setVideoUrl('https://www.exemplo.com.br/video.mp4');
$instagram->publicacao->setLegenda('Meu reels');

$instagram->publicarVideo();
```

O vídeo é processado pela API; o componente aguarda automaticamente o container ficar pronto (`FINISHED`) antes de publicar.

### Publicar story (imagem ou vídeo)

[](#publicar-story-imagem-ou-vídeo)

```
$instagram->publicacao->setImagemUrl('https://www.exemplo.com.br/imagem.jpg');
// ou: $instagram->publicacao->setVideoUrl('https://www.exemplo.com.br/video.mp4');

$instagram->publicarStory();
```

Stories não suportam legenda e expiram em 24 horas. Recomendado usar mídia na proporção 9:16 (1080x1920) para ocupar a tela inteira.

### Publicar carrossel (2 a 10 imagens)

[](#publicar-carrossel-2-a-10-imagens)

```
$instagram->publicacao->setImagensCarrossel([
    'https://www.exemplo.com.br/imagem1.jpg',
    'https://www.exemplo.com.br/imagem2.jpg'
]);
$instagram->publicacao->setLegenda('Meu carrossel');

$instagram->publicarCarrossel();
```

### Consultar o permalink da publicação

[](#consultar-o-permalink-da-publicação)

```
$instagram->consultar(); // usa o mediaId da publicacao
echo $instagram->publicacao->getPermalink();
```

Tratamento de erros
-------------------

[](#tratamento-de-erros)

Seguindo o padrão dos componentes idsy, os métodos não lançam exceções — o resultado fica em `detalhe`:

```
$instagram->publicarImagem();

echo $instagram->detalhe->getStatus();    // ok | error | exception
echo $instagram->detalhe->getReturn();    // mensagem do componente
echo $instagram->detalhe->getReturnAPI(); // retorno bruto (JSON) da API
```

URL base da API
---------------

[](#url-base-da-api)

Por padrão o componente usa `https://graph.instagram.com` (API do Instagram com login via Instagram). Se a conta for gerenciada via Página do Facebook, altere para:

```
$instagram->autenticacao->setBaseUrl('https://graph.facebook.com');
```

Limites da API
--------------

[](#limites-da-api)

- Máximo de **100 publicações via API a cada 24 horas** por conta (Reels e carrosséis contam como 1).
- Imagens devem ser JPEG.
- O container de mídia expira em 24 horas se não for publicado.

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance90

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

46d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6811338?v=4)[Eric Pereira](/maintainers/ericpereira)[@ericpereira](https://github.com/ericpereira)

---

Top Contributors

[![ericpereira-br](https://avatars.githubusercontent.com/u/87200958?v=4)](https://github.com/ericpereira-br "ericpereira-br (1 commits)")

### Embed Badge

![Health badge](/badges/idsy-instagram/health.svg)

```
[![Health](https://phpackages.com/badges/idsy-instagram/health.svg)](https://phpackages.com/packages/idsy-instagram)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
