paulhennell/twitter-account-info

A package to get basic account info like follower count number for a twitter account without requiring a twitter API login.

Fund package maintenance!
paulhennell

Installs: 28

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 1

Open Issues: 2

Language:HTML

v1.0.0 2023-02-28 17:34 UTC

README

Latest Version on Packagist Tests Total Downloads

This is a basic package to get the number of followers and other basic account info from Twitter without the complications of the official Twitter API. As a non-official project it should not be considered totally reliable, and as of v1.0 this relies on a Nitter instance, so if they all break, this will too.

Installation

You can install the package via composer:

composer require paulhennell/twitter-account-info

You may require a Http Client library if you don't have one in your project. See here for more.

For a fast fix you can simply install guzzle first like so:

composer require guzzlehttp/psr7

Usage

You use the system by passing in a twitter username

$accountInfo = (new Paulhennell\TwitterAccountInfo())->getFromUsername("hennell_dev");
echo $accountInfo->followers_count;
echo $accountInfo->tweet_count; //etc

If your HTTP Client isn't automatically discovered you can pass it into the constructor:

$accountInfo = (new Paulhennell\TwitterAccountInfo($httpClient))->getFromUsername("hennell_dev");

Nitter

As of V1.0 this package relies on scraping the alternative twitter front end Nitter.

Nitter has multiple instances and by default this package will randomly use one of four (see: RandomNitterUrl class).

To specify a specific instance you can pass a url string in with the username:

$accountInfo = (new Paulhennell\TwitterAccountInfo())->getFromUsername("hennell_dev", "https://nitter.net");

For more advance use (like random selection, or running an uptime check to pick a currently working nitter site) you can pass in any class that implements NitterUrlInterface - which simply needs to return a url string from a static method getUrl.

You can find a helpful list of possible nitter instances here

Testing

composer test

For client packages be sure to avoid running tests that would execute a web request. Use Mockery to fake the Twitter AccountInfo class and return a manually created AccountInfo object.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.