PHPackages                             xima/xima-twitter-client - 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. [API Development](/categories/api)
4. /
5. xima/xima-twitter-client

ActiveTypo3-cms-extension[API Development](/categories/api)

xima/xima-twitter-client
========================

Import and display tweets

3.0.0(3mo ago)04.7k↑111.7%[2 issues](https://github.com/xima-media/xima-typo3-twitter-client/issues)PHPCI passing

Since Jan 16Pushed 3mo ago5 watchersCompare

[ Source](https://github.com/xima-media/xima-typo3-twitter-client)[ Packagist](https://packagist.org/packages/xima/xima-twitter-client)[ RSS](/packages/xima-xima-twitter-client/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (6)Dependencies (43)Versions (10)Used By (0)

[![Extension icon](Resources/Public/Icons/Extension.svg)](Resources/Public/Icons/Extension.svg)

TYPO3 extension `xima_twitter_client`
=====================================

[](#typo3-extension-xima_twitter_client)

[![Supported TYPO3 versions](https://camo.githubusercontent.com/234a869ecf228fe1a94ff9750ca4a5686b21440a4d648a47fc27bcd769db50e9/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f78696d615f747769747465725f636c69656e742f7479706f332f736869656c64732e737667)](https://extensions.typo3.org/extension/xima_twitter_client)[![Composer](https://camo.githubusercontent.com/6e34b3c230cbe96113662582eb04a16c85301718f2b704e2b91dd33aece6e3ec/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f78696d615f747769747465725f636c69656e742f636f6d706f7365722f736869656c64732e737667)](https://packagist.org/packages/xima/xima-twitter-client)

This extension uses the Twitter/X API v2 to import and display tweets. It provides a scheduler command for automated imports and a content element for frontend display.

[![Backend Wizard preview](Documentation/backend_wizard.jpg)](Documentation/backend_wizard.jpg)

Requirements
------------

[](#requirements)

To use the Twitter API, you need a developer account at [developer.twitter.com](https://developer.twitter.com/). Register your application and obtain:

- API Key (Consumer Key)
- API Secret (Consumer Secret)
- Access Token
- Access Token Secret

The database must be configured to use the `utf8mb4` charset and collation. The standard MySQL `utf8` charset does not support 4-byte characters such as emojis, which are common in tweets. Without `utf8mb4`, saving tweets containing emojis will produce an SQL error.

Install
-------

[](#install)

### Composer

[](#composer)

```
composer require xima/xima-twitter-client
```

### TER

[](#ter)

[![TER version](https://camo.githubusercontent.com/1c219a42d997be376750b51eb6ad18ca7f13f214767db7c6b86bb4226751f379/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f78696d615f747769747465725f636c69656e742f76657273696f6e2f736869656c64732e737667)](https://extensions.typo3.org/extension/xima_twitter_client)

Download the zip file from [TYPO3 extension repository (TER)](https://extensions.typo3.org/extension/xima_twitter_client).

Setup
-----

[](#setup)

### 1. Add Site Set

[](#1-add-site-set)

Add the extension's site set to your site configuration (`config/sites//config.yaml`):

```
sets:
    - xima/xima-twitter-client
```

This automatically includes the TypoScript and PageTSconfig.

### 2. Configure API Credentials

[](#2-configure-api-credentials)

Add the credentials to your extension configuration (e.g., in `additional.php`):

```
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['xima_twitter_client'] = [
    'api_key' => 'your-api-key',
    'api_secret' => 'your-api-secret',
    'access_key' => 'your-access-token',
    'access_secret' => 'your-access-token-secret',
    'image_storage' => '1:Images/Twitter',
];
```

### 3. Create Account Records

[](#3-create-account-records)

1. Create a new SysFolder and enable the "Twitter" module
2. Add a new **Account** record inside this folder
3. Enter the Twitter username you want to fetch tweets from
4. Configure the maximum number of tweets to fetch

[![Backend account form](Documentation/backend_form.jpg)](Documentation/backend_form.jpg)

Usage
-----

[](#usage)

### Import Command

[](#import-command)

Fetch tweets from all configured accounts:

```
vendor/bin/typo3 twitter:fetchTweets
```

#### Command Options

[](#command-options)

OptionDescription`--account`, `-a`Fetch tweets for a specific account UID only`--dry-run`Validate configuration without fetching tweets`-v`Verbose output with detailed error messages#### Examples

[](#examples)

```
# Fetch tweets for all accounts
vendor/bin/typo3 twitter:fetchTweets

# Fetch tweets for a specific account
vendor/bin/typo3 twitter:fetchTweets --account=5

# Validate configuration only
vendor/bin/typo3 twitter:fetchTweets --dry-run

# Verbose output for debugging
vendor/bin/typo3 twitter:fetchTweets -v
```

### Cleanup Command

[](#cleanup-command)

Remove tweets (and their associated images) older than a given number of days:

```
vendor/bin/typo3 twitter:cleanupTweets
```

#### Command Options

[](#command-options-1)

OptionDescription`--lifetime`, `-l`Maximum age of tweets in days (default: 180)`--dry-run`Preview what would be deleted without actually deleting#### Examples

[](#examples-1)

```
# Remove tweets older than 180 days (default)
vendor/bin/typo3 twitter:cleanupTweets

# Remove tweets older than 90 days
vendor/bin/typo3 twitter:cleanupTweets --lifetime=90

# Preview what would be deleted
vendor/bin/typo3 twitter:cleanupTweets --dry-run
```

### Scheduler Task

[](#scheduler-task)

You can set up both the import and cleanup commands as scheduler tasks for automated execution.

### Content Element

[](#content-element)

Add the **Twitter** content element to any page to display the imported tweets:

[![Frontend feed](Documentation/frontend_feed.jpg)](Documentation/frontend_feed.jpg)

Configuration
-------------

[](#configuration)

### Site Settings

[](#site-settings)

Override the default settings in your site configuration (`config/sites//settings.yaml`):

```
plugin:
    tx_ximatwitterclient:
        settings:
            maxItems: 10
```

### Extension Configuration

[](#extension-configuration)

KeyDescriptionExample`api_key`Twitter API Key`api_secret`Twitter API Secret`access_key`Twitter Access Token`access_secret`Twitter Access Token Secret`image_storage`FAL storage path for downloaded images`1:Images/Twitter`Troubleshooting
---------------

[](#troubleshooting)

### API Authentication Errors

[](#api-authentication-errors)

Ensure all four API credentials are correctly configured. Use the `--dry-run` option to validate your configuration:

```
vendor/bin/typo3 twitter:fetchTweets --dry-run
```

### Image Storage Errors

[](#image-storage-errors)

Make sure the configured `image_storage` path exists and is writable. The path should be a valid FAL combined identifier (e.g., `1:Images/Twitter`).

### Rate Limiting

[](#rate-limiting)

The Twitter API has rate limits. If you encounter rate limit errors, reduce the import frequency or the number of tweets fetched per account.

License
-------

[](#license)

This project is licensed under [GNU General Public License 2.0 (or later)](LICENSE.md).

Contribute
----------

[](#contribute)

This extension was made by Maik Schneider. Feel free to contribute!

Thanks to [XIMA](https://www.xima.de/)!

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance82

Actively maintained with recent releases

Popularity23

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.5% 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 ~233 days

Recently: every ~292 days

Total

6

Last Release

96d ago

Major Versions

v0.0.1 → v1.0.02023-01-16

v1.0.2 → 2.0.02025-01-08

2.0.0 → 3.0.02026-03-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/04b105eb2ade5d364c2ae93a9a012d591594eaa3ad54d252db70856d1c293d5d?d=identicon)[m.schneider](/maintainers/m.schneider)

---

Top Contributors

[![maikschneider](https://avatars.githubusercontent.com/u/696865?v=4)](https://github.com/maikschneider "maikschneider (85 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (3 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (1 commits)")

---

Tags

typo3typo3-cms-extension

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/xima-xima-twitter-client/health.svg)

```
[![Health](https://phpackages.com/badges/xima-xima-twitter-client/health.svg)](https://phpackages.com/packages/xima-xima-twitter-client)
```

###  Alternatives

[friendsoftypo3/content-blocks

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

103519.9k53](/packages/friendsoftypo3-content-blocks)[hn/typo3-mcp-server

TYPO3 extension that provides a Model Context Protocol (MCP) server for interacting with TYPO3 pages and records

8523.4k1](/packages/hn-typo3-mcp-server)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[pagemachine/searchable

TYPO3 extension to index and search content with Elasticsearch

1039.9k](/packages/pagemachine-searchable)[thieleundklose/autotranslate

This extension provides automatic translation of pages and content elements via DeepL API.

1213.7k](/packages/thieleundklose-autotranslate)[kitodo/presentation

Base plugins, modules, services and API of the Digital Library Framework. It is part of the community-based Kitodo Digitization Suite.

467.3k6](/packages/kitodo-presentation)

PHPackages © 2026

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