PHPackages                             svenpetersen/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. [Utility &amp; Helpers](/categories/utility)
4. /
5. svenpetersen/instagram

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

svenpetersen/instagram
======================

v4.0.1(1y ago)72.4k↑650%3[8 issues](https://github.com/svenpet90/instagram/issues)[1 PRs](https://github.com/svenpet90/instagram/pulls)1GPL-2.0-or-laterPHPPHP &gt;=8.2

Since Jan 1Pushed 1y ago2 watchersCompare

[ Source](https://github.com/svenpet90/instagram)[ Packagist](https://packagist.org/packages/svenpetersen/instagram)[ Fund](https://www.paypal.me/svenharders)[ RSS](/packages/svenpetersen-instagram/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (10)Versions (19)Used By (1)

[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)[![TYPO3 10](https://camo.githubusercontent.com/614ff8ea70de89b6c0ffa951832460b9b407e0c321814a05fe00c02fe6999487/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31302d6f72616e67652e737667)](https://get.typo3.org/version/10)[![TYPO3 11](https://camo.githubusercontent.com/5432de37ab8517e6d9e6f803a2e1a7674a308c6d93896fe8a6fbc8a4cb50aece/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31312d6f72616e67652e737667)](https://get.typo3.org/version/11)[![Latest Stable Version](https://camo.githubusercontent.com/88bb3f162d5219fea208a8ab2f5be7f835646ccb000fc025ba6bcea4d5803df1/68747470733a2f2f706f7365722e707567782e6f72672f7376656e706574657273656e2f696e7374616772616d2f76)](https://packagist.org/packages/svenpetersen/instagram)[![Total Downloads](https://camo.githubusercontent.com/9f4360e48d8c0b3e0e103de4c8d3d30b4d9f7e2ca32030c91ff00b2ad9656984/68747470733a2f2f706f7365722e707567782e6f72672f7376656e706574657273656e2f696e7374616772616d2f646f776e6c6f616473)](https://packagist.org/packages/svenpetersen/instagram)[![Latest Unstable Version](https://camo.githubusercontent.com/a67fd29e612ef3b9f2527ed23a65a7824a0e8e78f239ace30f297a64ab9f48cd/68747470733a2f2f706f7365722e707567782e6f72672f7376656e706574657273656e2f696e7374616772616d2f762f756e737461626c65)](https://packagist.org/packages/svenpetersen/instagram)[![License](https://camo.githubusercontent.com/8ca69cee13d9bd479f183b3480eb79c832d668ba7e9239ab47d175f2813f7187/68747470733a2f2f706f7365722e707567782e6f72672f7376656e706574657273656e2f696e7374616772616d2f6c6963656e7365)](https://packagist.org/packages/svenpetersen/instagram)[![PHP Version Require](https://camo.githubusercontent.com/2f1b612bd7db6e5f8bc46cf4023334afbfe912165986ebfb874fb9a6d6434905/68747470733a2f2f706f7365722e707567782e6f72672f7376656e706574657273656e2f696e7374616772616d2f726571756972652f706870)](https://packagist.org/packages/svenpetersen/instagram)

TYPO3 Extension "instagram"
===========================

[](#typo3-extension-instagram)

What does it do?
----------------

[](#what-does-it-do)

TYPO3 Extension to import and display instagram posts/feeds in a TYPO3 Website.

Creates and auto-refreshes long-lived api access tokens, imports instagram feeds/posts as entities to the database and output feeds/posts via Frontend-Plugin.

- &gt;= V3.x of this extension uses the "Instagram API with Instagram Login" App and API.
- &lt;= V2.x uses the "Instagram Basic Display API" which will reach its EOL on Dec 4th 2024.

**Summary of features**

- Backend module for easy creation of long-lived API access tokens
- Automatic refreshing of API access tokens to keep them valid
- Import multiple Instagram users feeds/posts
- Uses official "Instagram API with Instagram Login" to access a users feed.
- Provides commands to refresh access tokens and to import feeds via cronjob/scheduler
- Downloads the posts (images/videos). No API calls needed when displaying them = no frontend performance impact.
- Display users feeds/posts in any way you like
- Based on Extbase and Fluid

Installation
------------

[](#installation)

The recommended way to install the extension is by using [Composer](https://getcomposer.org/). In your Composer based TYPO3 project root, just do:

```
composer require svenpetersen/instagram
```

Setup
-----

[](#setup)

1. Include the provided static TypoScript
2. Create a Facebook "Instagram API with Instagram Login" App: See the [official Documentation](https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login)for a step by step guide
3. Use the Backend Module provided by this Extension to create a "long-lived access token" in a "Feed" Entity.
4. Execute the command `instagram:import:posts {username}{storagePid} [limit|25]` to import the posts from a given users feed
5. Add a Frontend-Plugin on a page to output the imported posts in the frontend.

**Recommended**:

- Add a cronjob/scheduler task to refresh the API Access tokens automatically - see "Automatic Access Token refresh" for details.
- Add a cronjob/scheduler task to import the posts on a regular basis

Compatibility
-------------

[](#compatibility)

VersionTYPO3PHPSupport/DevelopmentAPI4.x13.4&gt;= 8.2 &lt;= 8.4Features, Bugfixes, Security UpdatesInstagram API with Instagram Login3.x12.4&gt;= 8.1 &lt;= 8.2Bugfixes, Security UpdatesInstagram API with Instagram Login2.x12.4&gt;= 8.1 &lt;= 8.2Bugfixes, Security UpdatesInstagram Basic Display API1.x10.4 - 11.57.4 - 8.0️AbandonedInstagram Basic Display APIFuntionalities
--------------

[](#funtionalities)

### Automatic import of posts

[](#automatic-import-of-posts)

This extension comes with a command to import (new) posts of a given instagram user. It is recommended to set this command up to run regularly - e.g. once a day.

```
instagram:import:posts {username} {storagePid} [limit|25] [--since="01/01/2022 00:00:00" --until="12/31/2022 23:59:59"
]
```

**Arguments:**

NameDescriptionusernameThe instagram username to import posts forstoragePidThe PID to save the imported postslimitThe maximum number of posts to import (Optional. Default: 25)**Options:**

NameDescription--sinceDate string to fetch posts since (Format: "MM/DD/YYYY H:i:s").--untilDate string to fetch posts until (Format: "MM/DD/YYYY H:i:s").### Automatic Access Token Refreshing

[](#automatic-access-token-refreshing)

The generated long-lived access token is valid for 60 days. It can be refreshed when at least 24 hours old.

To handle automatic refreshing of your access tokens this extension provides the command

```
instagram:accesstoken:refresh-all
```

Make sure to run this command regularly - e.g. once a day via a cronjob/scheduler - in order to keep your access token valid.

### Disable/enable Backend module "Token Generator"

[](#disableenable-backend-module-token-generator)

To disable the Backend module - e.g. after you generated all needed tokens - add this line to the `LocalConfiguration.php/AdditionalConfiguration.php`:

```
$GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['instagram.tokenGeneratorBeModule'] = false;
```

Extending
---------

[](#extending)

### Additional Template Selector

[](#additional-template-selector)

If you need a kind of template selector inside a plugin, you can add your own selections by adding those to:

```
$GLOBALS['TYPO3_CONF_VARS']['EXT']['instagram']['templateLayouts']['myext'] = ['My Title', 'my value'];
```

### Local path to save downloaded files

[](#local-path-to-save-downloaded-files)

By default all images/videos in imported posts are saved in `/public/fileadmin/instagram`You can change this path via the Extensions settings `local_file_storage_path` option.

### Events

[](#events)

This extension comes with a few events for you to listen to and add your own logic:

NameArgs.DescriptionPrePersistPostEventPost $post
 string $action\['new' or ‘update'\]Dispatched before a Post is saved. Can be used to modify the Post entity.PostPersistPostEventPost $postDispatched after a Post is saved.UPGRADE
-------

[](#upgrade)

### v2.x to v3.x

[](#v2x-to-v3x)

Since the "Instagram Basic Display API" will reach it's EOL an Dec. 4th 2024 the underlaying mechanism for generating access tokens changes. It is now required to have a "Instagram Professional Account". Any regular Instagram account can be converted into a professional account via the Profile Settings.

You then have to use the "Instagram Token Generator" Backend Module and re-run the token generation process. This extension will then update your exsiting Feed Entity with a new access token.

There are no changes to the database model, templates or plugins. All your existing customizations etc. will work like before.

Contributing
------------

[](#contributing)

Please refer to the [contributing](CONTRIBUTING.md) document included in this repository.

Testing
-------

[](#testing)

This Extension comes with a testsuite for coding styles and unit/functional tests. To run the tests simply use the provided composer script:

```
composer ci:test
```

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance21

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 97.8% 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

Every ~46 days

Recently: every ~20 days

Total

16

Last Release

521d ago

Major Versions

1.x-dev → v2.0.02023-05-05

2.x-dev → v3.0.02024-09-13

v3.0.1 → v4.0.02024-11-18

PHP version history (3 changes)v1.0.0PHP &gt;=7.4

v2.0.0PHP &gt;=8.1

v4.0.0PHP &gt;=8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/97380444?v=4)[Sven Petersen](/maintainers/svenpet90)[@svenpet90](https://github.com/svenpet90)

---

Top Contributors

[![svenpet90](https://avatars.githubusercontent.com/u/97380444?v=4)](https://github.com/svenpet90 "svenpet90 (88 commits)")[![matthaeus-dauskonzept](https://avatars.githubusercontent.com/u/38287296?v=4)](https://github.com/matthaeus-dauskonzept "matthaeus-dauskonzept (1 commits)")[![ZansDaus](https://avatars.githubusercontent.com/u/91259605?v=4)](https://github.com/ZansDaus "ZansDaus (1 commits)")

---

Tags

instagramphpsocialmediatypo3typo3-cms-extensiontypo3-extension

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[georgringer/news

News system - Versatile news system based on Extbase &amp; Fluid and using the latest technologies provided by TYPO3 CMS.

2815.1M89](/packages/georgringer-news)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

96374.6k23](/packages/friendsoftypo3-content-blocks)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1481.0k](/packages/eliashaeussler-typo3-form-consent)[praetorius/vite-asset-collector

Use AssetCollector to embed frontend assets generated by vite

52255.0k1](/packages/praetorius-vite-asset-collector)[t3g/blog

This blog extension uses TYPO3s core concepts and elements to provide a full-blown blog that users of TYPO3 can instantly understand and use.

48581.2k7](/packages/t3g-blog)[php-soap/wsdl

Deals with WSDLs

173.5M12](/packages/php-soap-wsdl)

PHPackages © 2026

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