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.
With twitter cracking down on API and scraping systems, the nitter workaround is so unreliable this package has become unusuable.
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
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");
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
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.
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.